gpt4 book ai didi

javascript - Google Apps Script V8 运行时使用哪个版本的 ECMAScript?

转载 作者:行者123 更新时间:2023-12-05 01:53:22 27 4
gpt4 key购买 nike

当您创建一个新的 Google Apps 脚本时,它似乎默认支持 v8 运行时。 documentation状态:

Apps Script supports two JavaScript runtimes: the modern V8 runtime and an older one powered by Mozilla's Rhino JavaScript interpreter.

The V8 runtime supports modern ECMAScript syntax and features.

V8 runtime documentation状态:

You can use modern ECMAScript syntax in scripts that are powered by the V8 runtime. This syntax includes let, const, and many other popular features.

在这两种情况下,它们都非常模糊地说明支持哪个 ECMAScript 版本,只是简单地声明“现代 ECMAScript 语法”。这是有问题的,因为有 7 versions that were released between 2015 and 2021 .因此,“现代”可以指这些版本中的任何一个。

例如,我可以很容易地假设“现代”指的是最新的第 12 版 (2022) ECMAScript,并最终编写如下代码:

let a = 1_000;

但是,尝试使用该语法会导致错误:

Syntax error: ParseError: Unexpected token ILLEGAL line: ...

与其手动检查其余 6 个版本中的每一个版本,直到找到支持的最新版本,不如找到明确说明支持哪个 ECMAScript 版本的文档。

注意:前面的相关问题 ( Which Edition of ECMA-262 Does Google Apps Script Support? ) 没有帮助,因为这些答案也指的是“现代 ECMAScript”,而不是确定的特定版本。

V8 运行时支持哪个版本的 ECMAScript?

最佳答案

这里有一些细微差别:

Which version of V8 does Google Apps Script use?

一个相当新的版本,它会经常更新。我相信这个想法是为了跟踪或略微落后于稳定的 Chrome 版本,但是(与更新其依赖项的任何大型项目一样)偶尔可能会出现问题/延迟。现在它应该在 9.x 版本范围内。 (对于 future 的读者:我预计此声明会在 2022 年结束之前过时!)

Which version of ECMAScript does the Google Apps Script V8 Runtime Support?

我想如果对此有一个简单的答案,您会在文档中找到它。正如@Kaiido 在评论中所说,JavaScript 引擎一个接一个地实现了新的 JavaScript 特性(而不是 EcmaScript 版本)。因此,对于像 GAS 这样的环境的浏览器,询问“是否支持功能 X?”通常更有意义,因为很可能仍然缺少一些 ES2020 功能,但一些 ES2021 功能已经可用。

Why does let a = 1_000; produce a Syntax Error?

好吧,GAS 使用的 V8 版本足够新(至少两年)来支持它;但整体 GAS 体验不仅仅取决于 V8:编辑器正在解析输入的源代码以提供帮助或突出显示或错误检查或诸如此类的东西。看起来 GAS 团队意识到负责该功能的组件尚不支持某些功能,并且正在积极努力进行补救。 (我不知道时间线是什么。)

关于javascript - Google Apps Script V8 运行时使用哪个版本的 ECMAScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71089066/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com