根据旧Google网上论坛的this thread,Apps脚本基于ECMA-262第3版。
这似乎得到了编辑器中的自动完成显示第3版阵列功能这一事实的支持。
然而,以下代码运行得非常好,这引起了人们的疑问:
var array = [
1,2,3,4,5
];
Logger.log("forEach:");
array.forEach(function (item,idx,arr) {
Logger.log(item);
});
请注意每个使用ECMA-262第5版阵列功能。
有权威的人会给出明确的答案吗?为什么会这样?是否可以安全地依赖所有第5版功能或已经实施并且似乎有效的子集?
答案 0 :(得分:25)
current documentation(2013年6月)称Apps脚本提供了ECMAScript 5的子集,基于JavaScript 1.8。
修改:谷歌已经有所回落。截至2013年11月,他们报告的应用脚本基于1.6,分别为1.7和1.8。
答案 1 :(得分:0)
Apps Script支持两种JavaScript运行时:现代的V8运行时和由Mozilla's Rhino JavaScript interpreter支持的旧的运行时。
V8 runtime支持现代的ECMAScript语法和功能。 Rhino的运行时基于较旧的JavaScript 1.6标准,以及1.7和1.8的一些功能。您可以自由选择要与脚本一起使用的运行时,但是强烈建议使用V8运行时。