web-dev-qa-db-ja.com

Node.js 0.12で利用可能なECMAScript 6機能

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の機能に関する包括的な要約になることです。

Node.js 0.12で有効になっているES 6機能

  • マップ、セット/ WeakMaps、WeakSets
  • 記号
  • Object.observe
  • 約束
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • .EPSILON
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • 数学
    • .clz32
    • .imul
    • 。符号
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .cosh
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hypot
163
Robert Rossmann

--harmonyフラグのない機能:

--harmonyフラグがなければ、これですべてだと思います。

--harmonyフラグ付きの機能:

それがすべてだと思います。たぶん何かを忘れてしまった場合-後でリストに追加します。

250
alexpods

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簡単-互換性表

言語機能の存在を確認するために小規模なテストに依存する動的に生成されたリストは、最新の状態を保ちます。そのような人気のあるリストの1つがkangax.github.io/compat-table/es6/です。 Node機能のみに関心があるため、次を使用できます。

http://node.green

kangaxサイトと同じデータを活用します。

#2ハード-バックトラックV8バージョン

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ラベルでマークされます。

4
pspi