Node.js 0.12中提供的ECMAScript 6功能

最近,随着升级的Google v8 JavaScript引擎v3.28.73发行了新的稳定版Node.js(0.12)

不使用该--harmony标志,Node.js当前具有哪些ECMAScript 6功能

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

此外,尝试仅针对v8引擎搜索此信息会提供太多最新信息-当前的v8版本为4.2。*,这比Node.js所使用的要早得多。

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

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

  • 地图,集合/ WeakMap,WeakSet
  • 符号
  • 对象观察
  • 承诺
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • .EPSILON
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • 数学
    • .clz32
    • .imul
    • 。标志
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .cosh
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hypot
西门2020/03/24 17:03:53

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

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

手动策划的语言功能列表很不错,但很快就会过时。Node 0.12不再流行,但是通常在新版本的Node推出后,手动创建的列表就会过时。

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

#1简易-兼容性表

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

http://node.green

利用与kangax网站相同的数据。

#2 Hard-回溯V8版本

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

$ node -p process.versions.v8
4.6.85.31

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