Google Apps Script 支持哪个版本的 ECMA-262?

IT技术 javascript google-apps-script ecma
2021-02-10 02:59:31

根据旧 Google Group 的这个帖子,Apps Script 基于 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 版 Array 函数 forEach 的使用。

有权威人士会就为什么会这样给出明确的答案吗?依赖第 5 版的所有功能或已实施且似乎有效的子集是否安全?

2个回答

文件说,旧的运行是基于Mozilla的犀牛JavaScript解释器提供的一个子集的ECMAScript 5和基于1.6,以及1.7和1.8一知半解。

除了 E6 module等少数例外V8 运行时支持新的 Apps 脚本运行时

截至 2020 年 2 月,Apps Script 支持 V8 运行时和“现代 ECMAScript 功能”:developers.google.com/apps-script/guides/services/...
2021-03-31 02:59:31

来自内置的 Google 服务

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

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