ECMAScript 2015 (ES6) in Node.js(譯)

原文:https://nodejs.org/en/docs/es6/

ECMAScript 2015 (ES6) in Node.js(譯)

Node.js是建立在V8引擎的基礎上。通過保持對該引擎最新發布版的更新,我們可以確保能夠將JavaScript ECMA-262 specification 中的新特性能夠及時的提供給Node.js開發者們,就像我們藉助該引擎保持性能和穩定性的持續改進一樣。
所有ECMAScript2015(ES6)特性被分爲 shipping, stagedin progress三個部分:

  • shipping特性是V8認爲已經穩定的特性,Node.js默認提供這些特性,而不需要額外的運行時標誌位來開啓。
  • Staged特性,是V8團隊認爲已經幾乎完成但還不夠穩定的特性,需要用運行時標誌位: --es_staging (或者它的同義詞, --harmony)來開啓這些特性。
  • In progress特性可以分別通過它們各自harmony標誌位來開啓(例如:--harmony_destructuring),但是強烈不建議使用它們,除非只是出於測試的目的。

有哪些特性在Node.js中是默認開啓的(不需要設置運行時標誌位)?

哪些特性還是在未完成狀態?

新的特性正在不斷地加入V8引擎。一般來說,雖然這些新特性未來在Node.js中落地的時間並不確定,但是我們依然可以抱有期待。
你可以通過--v8-options參數在列出Node.js各個發行版中的進行中的特性。但需要注意的是,這些特性並沒有完成,並且有在未來被V8廢棄的風險,所以你需要自己承擔使用它們的風險。

node --v8-options | grep "in progress"

我現有的生產環境中已經使用了--harmony標誌位,我應該移除它嗎?

--harmony標誌位在當前版本的Node.js中已經成了過去式。在這之後,我們可以使用它的同義詞--es_staging。如前所述,有一些已經完成的特性,還沒有被考慮爲stable狀態。如果你想安全地使用它們,特別是在生產環境中使用它們,最好等到V8和Nodejs將它們設置爲默認屬性後,並且可以不再使用運行時標誌位來開啓它們。如果你堅持開啓這個標誌位,你需要做好未來V8升級後會破壞你目前代碼的準備,因爲V8有可能改變這些特性的語義,而使它們更加接近標準。

我怎麼確定特定版本的Node.js使用的是哪一個版本的V8引擎?

Node.js提供了一個簡單的方法來列舉V8引擎的版本號:

node -p process.versions.v8
發佈了32 篇原創文章 · 獲贊 51 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章