Node.jsの新しい安定版リリース(0.12)は、アップグレードされたGoogleのv8 JavaScriptエンジンv3.28.73とともに最近リリースされました。
--harmony
フラグを使用せずに、Node.jsに現在存在するECMAScript 6の機能は何ですか?ES 6の機能のリストを主張しているいくつかのサイトをチェックしましたが、それらはすべて古くなっているようです-最も顕著なのは この表 (Update:0.12)現在のNode.jsの現在の状態で更新されました。これは、いくつかの機能が--harmony
フラグを必要とするものとしてリストされているためです。デフォルト(いくつか例を挙げると、マップ、セット、シンボル)。 Update: ノード固有のテーブル が利用可能になりました
また、v8エンジンのために純粋にこの情報をグーグルしようとすると、最新の情報が得られすぎます-現在のv8リリースは4.2。*で、Node.jsのかなり先を行っています使用します。
私の期待は、この質問(およびその回答)が、Node.js開発者が現在利用できるES 6の機能に関する包括的な要約になることです。
--harmony
フラグのない機能:
--harmony
フラグがなければ、これですべてだと思います。
--harmony
フラグ付きの機能:
--harmony_arrow_functions
とは異なり、io.js
フラグは不要)strict mode
のみ文字列メソッド:
includes()
に置き換えられました)プロキシ (--harmony-proxies
フラグの後ろ)
それがすべてだと思います。たぶん何かを忘れてしまった場合-後でリストに追加します。
ES6の機能は、段階的にNodeにトリクルダウンします。 Nodeは、GoogleのV8をJavaScriptエンジンとして使用します。 Nodeでサポートされている機能は、V8で最初に実装し、次にNodeチームでNode.jsに組み込む必要があることを意味します。
Googleのチームは、およそ6週間ごとにV8の新しいバージョンをリリースし、それを使用するかどうかはNodeチーム次第です。
手動でキュレーションされた言語機能のリストは素晴らしいですが、すぐに時代遅れになる可能性があります。 Node 0.12はもはや流動的ではありませんが、通常、手動でキュレーションされたリストはNodeの新しいバージョンがリリースされるとすぐに廃止されます。
静的リストに依存することなく、Nodeバージョンがサポートする機能を確認する2つの代替方法を次に示します。これらの詳細な使用例と詳細な使用例については、 "Node.jsがES 6言語機能をサポートしているかどうかを確認する方法" を確認できます。
言語機能の存在を確認するために小規模なテストに依存する動的に生成されたリストは、最新の状態を保ちます。そのような人気のあるリストの1つがkangax.github.io/compat-table/es6/です。 Node機能のみに関心があるため、次を使用できます。
kangaxサイトと同じデータを活用します。
NodeはV8エンジンを使用しているため、Nodeに含まれるV8のバージョンを判断することで、サポートされているES6言語機能がわかります。 node -p process.versions.v8
でNodeにバンドルされているV8のバージョンを確認できます。
$ node -p process.versions.v8
4.6.85.31
次に、GoogleのV8プロジェクトリソースを使用して、各バージョンに実装されている機能を見つけることができます。 V8プロジェクトは issue tracker を保持します。ES6+を超える機能は、harmonyラベルでマークされます。