38

根据旧 Google Group 的这个帖子,Apps 脚本基于 ECMA-262 3rd Edition。

这似乎得到了编辑器中的自动完成显示第 3 版数组函数这一事实的支持。

然而,下面的代码运行得非常好,这让人对此事产生怀疑:

var array = [
  1,2,3,4,5
];

Logger.log("forEach:");
array.forEach(function (item,idx,arr) {
  Logger.log(item); 
});

注意使用 ECMA-262 第 5 版数组函数 forEach。

是否会有权威人士对为什么会这样给出明确的答案?依赖第 5 版的所有功能或已实施并似乎可以工作的子集是否安全?

4

2 回答 2

32

文档说旧的运行时基于 Mozilla 的 Rhino JavaScript 解释器,它提供了ECMAScript 5的一个子集,并且基于 1.6,只有 1.7 和 1.8。

V8 运行时支持新的 Apps 脚本运行时,E6 模块等少数例外。

于 2013-06-24T00:35:31.443 回答
2

来自内置 Google 服务

Apps Script 支持两种 JavaScript 运行时:现代V8运行时和由Mozilla 的 Rhino JavaScript 解释器提供支持的旧版本。

V8 运行时支持现代ECMAScript语法和特性。Rhino 运行时基于旧的JavaScript 1.6标准,加上1.71.8的一些特性。您可以自由选择与脚本一起使用的运行时,但强烈建议使用 V8 运行时。

于 2020-06-15T21:52:57.613 回答