Google Apps Scrip V8运行时使用哪个版本的ECMAScript? [英] Which version of ECMAScript does the Google Apps Script V8 Runtime use?

查看:24
本文介绍了Google Apps Scrip V8运行时使用哪个版本的ECMAScript?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Apps脚本支持两个JavaScript运行时:现代的V8运行时和由Mozilla的Rhino JavaScript解释器支持的旧运行时。

V8运行时支持现代ECMAScript语法和功能。

V8 runtime documentation状态:

您可以在由V8运行时支持的脚本中使用现代ECMAScript语法。此语法包括let、const和许多其他流行功能。

在这两种情况下,他们都非常含糊地说明支持哪个ECMAScript版本,只是简单地声明了现代ECMASIPT语法。这是有问题的,因为有7 versions that were released between 2015 and 2021。因此,摩登&可以引用这些版本中的任何一个。

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

let a = 1_000;

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

语法错误:ParseError:意外令牌非法行:...

在找到受支持的最新版本之前,不必手动逐一查看其余6个版本,最好能找到明确说明受支持的ECMAScript版本的文档。

注意:前面的相关问题(Which Edition of ECMA-262 Does Google Apps Script Support?)没有什么用处,因为这些答案还参考了现代ECMAScript&,而不是明确的特定版本。

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

推荐答案

这里有一些细微差别:

Google Apps脚本使用哪个版本的V8?

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

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

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

为什么let a = 1_000;会产生语法错误?

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

这篇关于Google Apps Scrip V8运行时使用哪个版本的ECMAScript?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆