相关疑难解决方法(0)

哪个版本的ECMA-262是否支持Google Apps脚本?

根据旧谷歌集团的这个帖子,Apps脚本基于ECMA-262第3版.

这似乎得到了编辑器中的自动完成显示第3版阵列功能这一事实的支持.

但是,以下代码运行得非常好,这使人对此事表示怀疑:

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

Logger.log("forEach:");
array.forEach(function (item,idx,arr) {
  Logger.log(item); 
});
Run Code Online (Sandbox Code Playgroud)

请注意每个使用ECMA-262第5版阵列功能.

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

javascript ecma google-apps-script

29
推荐指数
1
解决办法
5855
查看次数

将Javascript 1.7+转换为Javascript 1.6

是否有任何转换器或技术可用于将Javascript 1.7代码及其新语言功能转换为Javascript 1.6?

我对迭代器生成器和yield关键字最感兴趣.我使用的脚本引擎只有1.6,但迭代器生成器可以提供更好的代码.用手书写似乎很复杂.

我尝试用C#编写它,用ILSpy反编译,然后手动将移植到Javascript.但那真是一团糟.

我已经搜索过这样一个转换器,但我什么都没找到 - 可能是由于在这种情况下搜索条件与不相关的结果共享.

javascript generator

4
推荐指数
1
解决办法
621
查看次数

尝试调用Object.assign()时,Google Apps脚本引发错误

Google Apps脚本似乎无法识别该功能Object.assign()。尝试使用它时出现错误:

TypeError: Cannot find function assign in object function Object() { [native code for Object.Object, arity=1] }
Run Code Online (Sandbox Code Playgroud)

我测试功能的代码是直接从MDN复制的示例:

function myFunction() {
  const object1 = {
    a: 1,
    b: 2,
    c: 3
  };

  const object2 = Object.assign({c: 4, d: 5}, object1); //error is thrown here

  console.log(object2.c, object2.d);
  // expected output: 3 5
}
Run Code Online (Sandbox Code Playgroud)

我将上面的代码直接复制粘贴到Chrome开发者控制台中,该控制台运行良好并提供了预期的输出。

我在网上找不到任何内容说应用程序脚本不支持此特定功能或类似功能。发生什么了?我怎样才能解决这个问题?

javascript google-apps-script

4
推荐指数
1
解决办法
1158
查看次数

标签 统计

javascript ×3

google-apps-script ×2

ecma ×1

generator ×1