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


162

Node.js(0.12)の新しい安定版リリースが最近、アップグレードされたGoogleのv8 JavaScriptエンジン、v3.28.73とともにリリースされました

--harmonyフラグを使用せずに現在Node.jsにあるECMAScript 6の機能は何ですか?

ES 6の機能をリストしていると主張するいくつかのサイトをチェックしましたが、それらはすべて古くなっているようです-最も目立つのは、このテーブル更新: 現在0.12の現在のNode.jsステータスで更新されています)。--harmonyそれらのいくつかがデフォルトで有効になっているのを見つけたときにフラグを要求しました(いくつか例を挙げると、マップ、セット、シンボル)。更新ノード固有のテーブルが利用可能になりました

また、純粋に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

9
「この質問(およびその回答)が、Node.js開発者が利用できるようになったES 6の機能についての包括的な要約になることを願っています。」 -可能性は、それが単に混乱した混乱になるということです...それは他のすべてのリソースと同じくらい古くなっています!! あなたが1)自己回答でなく、2)時間をかけて他の回答をあなたの回答にまとめる場合を除きます。その作業を行う準備ができている場合は、ブログで行う方が適切な場合があります。
スティーブンC


2
キュレーションES6適合表:kangax.github.io/compat-table/es6
FABRICIOマット

2
@JonathanLonowski興味深いことに、ノード0.12に関する問題/ PRが見つからないのは奇妙です。編集:問題を報告しました。
FABRICIOマット

1
@RobertRossmann-誰でもブログを作成できます。私はあなたの目標を疑っていません。これがうまくいくとは思わないだけです...誰か(つまり>> you <<)が>>努力<<を入れてうまく動かさない限り。
スティーブンC

回答:


250

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

--harmonyフラグのないものはこれで全部だと思います。

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

それだけだと思います。多分私が何かを忘れた場合-私は後でリストに追加します。


8
これはまさに私が得たいと思っていた種類の答えです-クリーンで、ドキュメント/例へのリンクがあります!--harmonyフラグの下の機能をリストするための追加ポイント。:)
Robert Rossmann、2015

2
文字列テンプレートはあり--harmonyますか、ありませんか?バックティック${varname}文字列構文のように?
スキマスイッチ

5
@Sukima Node v0.12は、テンプレート文字列--harmonyフラグあり、フラグなしをサポートしていません。しかしiojs 、フラグを必要とせずにそれらをサポートします。
alexpods 2015

1
nodejsはこれをどこかに文書化していますか?とても便利です。
Justin Hamade 2015

1
@JonRed多分あなたの実行は、定数のためではなく、別の理由で失敗しました。私はそれを試してみましたが、私の実行はかなりうまくいきます。
alexpods 2015

4

ES6の機能は、段階的にノードに細流化されます。NodeはJavaScriptエンジンとしてGoogleのV8を使用します。Nodeでサポートされている機能は、最初にV8で実装する必要があり、次にNodeチームがNode.jsに組み込む必要があることを意味します。

Googleのチームは、V6の新しいバージョンを約6週間ごとにリリースします。それを使用するかどうかは、Nodeチーム次第です。

手動でキュレーションした言語機能のリストは便利ですが、すぐに古くなる可能性があります。Node 0.12はもはや流動的ではありませんが、通常、手動でキュレートされたリストは、新しいバージョンのNodeがロールアウトされるとすぐに廃止されます。

静的リストに依存することなく、ノードバージョンがサポートする機能を確認する2つの代替方法を次に示します。これらの詳細と使用例については、「Node.jsがES 6言語機能をサポートしているかどうかを確認する方法」を確認してください。

#1簡単-互換性表

言語機能の存在を確認するために小さなテストに依存する動的に生成されたリストは、最新の状態を維持します。そのような人気のあるリストの1つはkangax.github.io/compat-table/es6/です。ノードの機能のみに関心があるので、

http://node.green

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

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

NodeはV8エンジンを使用しているため、Nodeに含まれているV8のバージョンを判別すると、サポートされているES6言語機能がわかります。Node withにバンドルされていたV8のバージョンを確認できますnode -p process.versions.v8

$ node -p process.versions.v8
4.6.85.31

次に、GoogleのV8プロジェクトリソースを使用して、各バージョンに実装されている機能を見つけることができます。V8プロジェクトは、調和ラベルでマークされた機能以外のES6 +を見つけることができる課題追跡を保持しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.