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


162

最近,随着升级的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

9
“我希望这个问题(及其答案)将成为Node.js开发人员现在可以使用哪些ES 6功能的全面总结。” -很有可能它将变成混乱无序的混乱……与所有其他资源一样过时了!!除非您1)自己回答,2)花时间将其他答案编入您的答案。如果您准备好进行这项工作,那么在博客中进行这项工作可能更合适。
斯蒂芬·C

2
或仅切换到io.js(它附带了最新的V8版本)并关注io.js页面上的ES6
法布里西奥磨砂


2
@JonathanLonowski有趣的是,我找不到关于Node 0.12的问题/ PR很奇怪。编辑:提出问题
法布里西奥磨砂

1
@RobertRossmann-任何人都可以拥有一个博客。我毫不怀疑你的目标。只是我认为这不起作用...除非有人(例如>> you <<)放入>> effort <<以使其起作用。
史蒂芬·C

Answers:


250

不带--harmony标志的功能:

我认为这就是我们所没有的--harmony

带有--harmony标志的功能:

我认为就这些。也许我忘了一些东西-稍后再将其添加到列表中。


8
这正是我希望得到的答案-干净,并带有指向文档/示例的链接!--harmony标记下的功能列表要加分。:)
罗伯特·罗斯曼

2
字符串模板是否带有或不带有--harmony?如后面的滴答${varname}字符串语法?
Sukima 2015年

5
@Sukima Node v0.12不支持模板字符串,不带--harmony标志或不带标志。但是iojs 无需任何标志即可支持它们。
alexpods 2015年

1
nodejs是否在任何地方都有此文档?这是非常有用的。
贾斯汀·哈玛德

1
@JonRed也许您的运行失败是由于其他原因,而不是因为常量。我刚刚尝试过,我的跑步效果很好。
alexpods,2015年

4

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 +功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.