ECMAScript 6 Node.js 0.12 中可用的功能

2022-08-30 02:18:27

Node.js(0.12)的新稳定版本最近随着升级的Google的v8 JavaScript引擎v3.28.73而登陆。

Node.js 中当前有哪些 ECMAScript 6 功能,而未使用该标志?--harmony

我已经检查了几个声称列出ES 6功能的网站,但所有这些功能似乎都过时了 - 最突出的是此表更新:现在使用当前Node更新.js状态截至0.12),因为有几个功能被列为需要标志,而我发现其中一些功能默认启用(地图, 集,符号,仅举几例)。更新节点特定表已可用--harmony

此外,尝试纯粹针对v8引擎的Google此信息提供了太多最新信息 - 当前的v8版本是4.2.*,这远远领先于Node.js使用的信息。

我希望这个问题(及其答案)将成为Node.js开发人员现在可用的ES 6功能的全面总结。

在 Node.js 0.12 中启用的 ES 6 功能,我目前知道:

  • 地图, 集 / 弱地图, 弱集
  • 符号
  • 对象.观察
  • 承诺
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • .伊普西隆
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • 数学
    • .clz32
    • .imul
    • .符号
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .cosh
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hypot

答案 1

没有 --和谐标志的功能:

我认为这就是我们没有旗帜的全部。--harmony

具有 --和谐标志的功能:

我想就是这样。也许如果我忘记了什么 - 我稍后会将其添加到列表中。


答案 2

ES6 功能分阶段渗透到 Node。Node使用Google的V8作为JavaScript引擎。Node中支持的功能意味着它首先必须在V8中实现,然后Node团队必须将其合并到Node.js中。

谷歌的团队大约每六周发布一次新版本的V8,然后由Node团队决定使用它。

手动策划的语言功能列表很不错,但很快就会过时。Node 0.12不再是不断变化的,但通常手动策划的列表一旦推出新版本的Node就会过时。

以下是检查 Node 版本支持哪些功能的两种替代方法,而无需依赖静态列表。有关进一步阅读和使用这些功能的更详细示例,可以选中“如何检查Node.js是否支持ES 6语言功能”

#1 简单 - 兼容性表

动态生成的列表依赖于小型测试来确认语言功能的存在,从而保持更好的最新状态。一个这样的流行列表是 kangax.github.io/compat-table/es6/。我们只对 Node 功能感兴趣,因此您可以使用

http://node.green

它利用了与kangax站点相同的数据。

#2 硬 - 回溯 V8 版本

Node使用V8引擎,因此确定Node中包含哪个版本的V8可以告诉我们支持哪些ES6语言功能。您可以找出哪个版本的 V8 与 在 Node 中捆绑在一起。node -p process.versions.v8

$ node -p process.versions.v8
4.6.85.31

然后,使用Google的V8项目资源,您可以找到每个版本中实现的功能。V8 项目保留了一个问题跟踪器,您可以在其中找到标有和谐标签的 ES6+ beyond 功能。