Node.js 支持 =>(箭头函数)

IT技术 javascript node.js
2021-02-04 02:21:45

Node.js 是否已经支持 => 函数关键字别名?如果是,从哪个版本开始?如何启用此语言扩展?

(function() { console.log('it works!') })()

成为

(() => { console.log('it works!') })()
4个回答

简而言之:是的,自 4.4.5 版以来,Node.js 中的箭头函数得到了相当好的支持。

完全正确的支持从版本 6 开始。最初的支持是在 v0.12 中引入的,但在 v4.0 变得更好之前,它非常不完整并且默认禁用。有关详细信息,请参阅 Node 的 ES6 兼容性表:http : //node.green/#ES2015-functions-arrow-functions

在更多地考虑了您关于 4.2.4 的这项工作的报告后,我同意重要的是要提及此功能是第一次v4.0 上默认启用,因此我还将其添加到答案中。谢谢。
2021-03-20 02:21:45
@scravy,您在 4.2.4 版上的单项测试仅证明了对该语法的一些支持。自从我第一次检查链接的站点以来,它显然发生了变化,不再显示那些旧版本的测试,但那时你可以看到 v4.4.0 在各种情况下仍然会失败。我编辑了我的答案,以包含从版本 6 开始的适当支持。
2021-03-21 02:21:45
节点版本 4.2.4 已经支持箭头功能:((a, b) => a + 3 * b)(2, 4)给你 14. downvote,因为这个答案让你相信它只从版本 4.4.5 开始支持。由于从(至少)4.2.4 开始支持它,这意味着特别是 4.3 LTS 版本确实支持箭头功能。此外,链接站点没有提到 4.4.5 以任何方式特殊。请注意,尽管根据链接的站点,箭头函数的优先级显然不正确,但第一个正确支持此功能的节点版本似乎是 6.4.0。因此我相信:从 4.0 开始支持,从 6.4 开始正确
2021-03-26 02:21:45

您所指的语法是“箭头函数”语法。它是 ECMAScript 6 的一个特性,也被称为“和谐”。ES6标准现在敲定,但发动机仍在执行它的新功能。

V8 现在支持箭头功能Node 在 V8 引擎上运行,但 Node 将最新版本合并到其代码库中可能需要一些时间。

每当添加它时,它可能只能通过--harmony命令行标志启用

你可以关注这个问题:https : //code.google.com/p/v8/issues/detail?id=2700

目前(截至 2014 年 5 月 2 日)箭头功能已经实现并等待此功能将在 v8 中登陆:https : //codereview.chromium.org/160073006/

之后我们需要等待,直到带有箭头功能的v8版本被集成到Node.JS中。你可以在那里关注 Node.JS 更新日志:https : //github.com/joyent/node/blob/master/ChangeLog(搜索“v8:升级到......”)

kangax 的兼容性表可以让您及时了解 Node.js中当前可用的内容。

可以使用此页面上的说明启用实验性功能

默认情况下,Node.js 上的所有运输功能都处于启用状态

暂存功能需要运行时标志:(--es_staging或其同义词,--harmony

进行中的功能可以通过它们各自的和谐标志(例如--harmony_destructuring单独激活,但这是非常不鼓励的