ECMAScript 2015 (ES6) 及更高版本
Node.js 建立在現代版本的 V8 上。通過跟蹤此引擎的最新版本,我們確保 Node.js 開發人員能夠及時獲得來自 JavaScript ECMA-262 規範 的新功能,以及持續的性能和穩定性改進。
所有 ECMAScript 2015 (ES6) 功能分為三組: 已發布、階段 和 進行中 功能
- 已發布 功能是 V8 認為穩定的功能,在 Node.js 上默認啟用,並且 無需 任何運行時標記。
- 階段 功能是幾乎完成但不被 V8 團隊認為穩定的功能,需要一個運行時標記:
--harmony
。 - 進行中 功能可以通過各自的 harmony 標記單獨激活,儘管這在測試目的以外的情況下是非常不鼓勵的。注意:這些標記由 V8 公開,可能會在沒有任何棄用通知的情況下更改。
哪些功能在哪個Node.js版本中默認安裝?
網站 node.green 提供了一個優秀的概覽,列出了各個版本的Node.js支持的ECMAScript功能,基於kangax的compat-table。
哪些功能正在進行中?
新功能不斷被添加到V8引擎中。一般來說,預期它們將在將來的Node.js版本中實現,儘管時間未知。
您可以通過使用--v8-options
參數進行grep來列出每個Node.js版本中所有正在進行中的功能。請注意,這些是V8的不完整且可能損壞的功能,因此請自行承擔風險。
node --v8-options | grep "in progress"
我已經設置了我的基礎架構以利用--harmony標誌。我應該將其移除嗎?
目前Node.js中--harmony
標誌的行為是僅啟用階段功能。畢竟,它現在是--es_staging
的同義詞。如上所述,這些是已完成但尚未被視為穩定的功能。如果您想要保守,特別是在生產環境中,請考慮將此運行時標誌移除,直到它默認在V8上發布,並因此在Node.js上發布。如果您保留此標誌啟用,您應該為進一步的Node.js升級做好準備,以防V8更改其語義以更緊密地遵循標準,從而破壞您的代碼。
我如何找出特定版本的Node.js中包含哪個版本的V8引擎?
Node.js提供了一種簡單的方法,通過process
全局對象列出特定二進制文件中包含的所有依賴項及其版本。就V8引擎而言,請在終端中輸入以下命令以檢索其版本。
node -p process.versions.v8