Node.js 6.0 支持 93% 的 ES2015 语法

  • Abel Avram
  • 任美芒

2016 年 5 月 5 日

话题:JavaScriptNode.js语言 & 开发

Node.js 6.0 正式发布了,这将是当前最新的版本。该版本包括性能的提升、更全面的测试、更完善的文档,安全性更强并且支持更广泛的 ES2015 语法。

Node.js 6.0 是在 5.0 版本(六个月前发布)之后发布的,但实际上它是Node.js 4.x的替代,从今年十月份开始它将成为下一个长期支持(LTS)版本。据 IBM Node.js 技术负责人 James Snell 介绍,Node.js 6.0 (Current) 包括“部分性能的显著改善、提高了可靠性、可用性、安全性”。如果是生产环境需要保证稳定,Snell 建议十月份以前仍使用 Node.js 4.x 版本。Node.js v4.x 的长期支持会持续到 2017 年 4 月,之后进入维护更新阶段。想要了解更多 Node 基金会标记版本的细节,我们建议阅读Node.js 长期支持工作组的说明。Node.js 5.0是为喜欢尝试的勇敢者提供的过渡版本。

Node.js 6 的新功能或改进中,我们主要关注:

  • 据 Snell 介绍,模块加载比 Node.js 4.x 快了近四倍。这意味着应用程序的启动会非常快。
  • 更全面的测试覆盖率
  • 更完善的文档
  • Buffer 和 File System API 的易用性得到提高

Node.js 6.0 一个重大改进是使用 V8 5.0,支持 93% 的 ES2015 语法。根据Kangax 兼容性表,每日构建甚至支持 96% 的 ES2015 语法,包括解构 (destructuring)、剩余参数(rest parameters)、类(class)以及 super 关键字。不支持的有直接或相互递归、迭代器关闭等其它一些语法。其中一些已经准备好了,但需要 harmony flag 才能使用。

在安全性方面的改进,Node.js 基金会在其公告中提到:

新的 Buffer API 使用新的构造器创建 Buffer 实例,并引入了 zero-fill-buffers 命令行标志,这样会减少错误的风险并且避免漏洞泄露到应用程序中。使用新的命令行标志,开发人员可以继续安全地使用旧的模块,即使这些模块没有更新,没有使用新的构造器 API。另外,V8 改进了 Math.random() 的实现,使之更安全——这个特性也添加到了 Node.js v6。

另一个值得一提的改变是不再支持 Windows XP 和 Vista。另外,由于 Node.js 6 使用了 V8 5,所有的插件需要重新编译。完整的变化清单,我们建议阅读Snell 的帖子

除了 Node 基金会在其公告中提到的 Node.js“超过 350 万用户和 100%的年增长速度”,npmjs 公布了一些 NPM 统计数据:211000NPM 注册用户中 73000 用户至少发布了一个包,每月有超过 300 万唯一的 IPs 访问 NPM 注册表,大约有 400 万用户,三月份有超过 8 千万的 NPM 会话,每星期有超过 10 亿的包下载量。这些数字显示出 JavaScript,Node.js 和 NPM 构建的生态系统正在蓬勃发展。

查看英文原文:Node.js 6.0 Supports 93% of ES2015


感谢张龙对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

JavaScriptNode.js语言 & 开发