考虑到这个Google脚本脚本:
'use strict'
const foo = 2;
function bar() {
Logger.log(foo + 2);
}运行函数bar将生成一个TypeError: redeclaration of const foo.
为什么?foo是如何被重新声明的?
发布于 2018-01-17 04:47:05
这似乎是由于ES6的不稳定实现所致。如果从函数中删除foo,仍然会得到错误,因此错误来自全局const声明。下面的代码会产生相同的错误,但如果您注释掉const,则不会产生错误。
const foo = 2;
function bar() {
const bar = 2;
Logger.log(bar + 2);
}请参阅Google脚本Javascript标准支持,特别是第一个评论。
发布于 2019-01-29 04:32:52
更新:使用新运行时(V8),问题中的代码不再抛出错误,但禁用它,旧运行时(Rhino)仍然抛出错误。
来自应用程序脚本确定作用域问题
暂时避免在Apps脚本中使用const。它只是不能正常工作。目前,这仅仅是var的半烤版本。
以上所指的是在新的运行库可用之前,使用发布时可用的运行库。
来自同一来源
应用程序脚本是基于ES3 JavaScript的,有相当多的来自ES5,甚至ES6的添加。
要读取主源,请转到特性
https://stackoverflow.com/questions/48293261
复制相似问题