node.js支持哪个版本的Javascript

emt*_*ane 75 javascript v8 node.js

我开始使用Node.js并且我很难弄清楚节点支持哪种版本的JavaScript,这使我很难弄清楚我可以使用哪些功能.这就是我所知道的.

鉴于此,我认为我可以在节点中使用JavaScript 1.5兼容代码.然而,事实证明我可以使用Array.forEach其他构造,尽管根据MDC它直到Javascript 1.6 - ECMA-262,第5版才可用.

我哪里错了?是否有某个文档详细说明了可用的语言功能?

Ben*_*son 35

这个矩阵(V8非常接近WebKit列)似乎很好地回答了"我可以使用哪些功能?"的问题.但是我找不到"支持哪个版本的javascript?"的规范答案.据我所知,最佳答案是:支持ECMA-262第3版,但也支持第5版的许多功能.

有一个很好的解释为什么V8遵循这个线程上的WebKit和JavaScriptCore功能.

  • 2020 年更新:请参阅 [Nate Whittaker 的回答](https://node.green/)。 (4认同)

小智 32

Node javascript版本取决于Node使用的v8版本.节点版本0.0.1(2011年7月14日)及以上版本使用v8 3.4.10或更高版本,并且是第5版ECMA-262,而不是第3版.第5版相当于Javascript 1.8.5.见下面的原因.

与2011年5月21日和15 2011年6月V8的网站停止了上市的V8作为实施第3版ECMA-262,并开始展示第5版. http://web.archive.org/web/20110521053630/http://code.google.com/p/v8/ http://web.archive.org/web/20110615102350/http://code.google. COM/p/V8 /

根据v8更改日志,2011年6月15日v8更改为3.4.4版.那个版本以及后来的版本是第5版.

根据Node changelog,v8 3.4.10在2011年7月14日的节点版本0.5.1中,因此该版本及更高版本是第5版ECMA-26.这并不意味着3.4.10之前的v8版本纯粹是第3版,因为通过许多v8版本可能已经从第3版到第5版稳定过渡.


Nat*_*ker 15

看起来,在某些时候,node.green被创建用于跟踪针对不同Node版本的JavaScript功能支持.

  • 我在这里添加注释是因为,从表面上看,node.green 似乎只列出了对 ES 2015 的支持。您可以通过编辑 URL 来调整它,例如 https://node.green/#ES2018,它显示了支持对于 ES9,我相信。https://www.ecma-international.org/publications-and-standards/standards/ecma-262/ (3认同)