Node.jsのどのバージョンでES2015以降の各仕様が使えるか
Node.jsのどのバージョンでES2015以降の各仕様が使えるか:
僕はブラウザ向けのJavaScriptを書くときは必ずBabelでトランスパイルしてるので、特に互換性は考えずJSの最新機能を使ってます。
でもCLIツールをNode.jsで書いたりする場合はランタイムが固定なので、Babeることなく「このバージョン以降のNode.jsでそのまんま動くように」なるべく書きたいのです。
The TC39 Processの性質上、「ES2018はNode v.XX以降でサポート」みたいな感じではなく、個別のProposalごとに実装されるタイミングが違います。
MDNの「ブラウザ実装状況」にはNode.jsも含まれていて、機能別に調べれば分かるんですが、「Node.jsのこのバージョンではどこまでの機能使えるんだっけ?」という確認をしたいケースが多かったので、一覧にまとめてみました!
一覧にまとまっているサイトを紹介します。
これを見れば万事解決。詳細な表にまとまってます。
https://node.green/
最初、上記サイトの存在を見つけられなくて「なんで誰もまとめてないの?なら俺がやってやる!」と思って、自分でES2016/2017/2018の新機能とMDNの対応ページを見比べながらポチポチまとめていたのでありますが、頑張って書き終えたあと、もう少しググったら見事に発見してしまって、完全に「車輪の再発明」というか「写真の再撮影」的な単なる劣化コピーをしていたことに気づいたわけでして・・・orz
ググってなぜこれにたどり着けなかったのかなぁ。。
せめて上記サイトにたどり着く日本人が増えることを祈ってあえて以下も残しつつこのエントリを投稿します。
前略
ES2015は、import/export以外は「使えて当たり前」な感じなので、載せませんでした。
ES2018は未対応や「?」がまだ多かったり、ES2019以降もこのサイクルは続くので、随時更新していきたいと思ってます!
ES2016 / ES2017で実装される機能まとめ
ES2018で追加される機能まとめ
はじめに
僕はブラウザ向けのJavaScriptを書くときは必ずBabelでトランスパイルしてるので、特に互換性は考えずJSの最新機能を使ってます。でもCLIツールをNode.jsで書いたりする場合はランタイムが固定なので、Babeることなく「このバージョン以降のNode.jsでそのまんま動くように」なるべく書きたいのです。
The TC39 Processの性質上、「ES2018はNode v.XX以降でサポート」みたいな感じではなく、個別のProposalごとに実装されるタイミングが違います。
MDNの「ブラウザ実装状況」にはNode.jsも含まれていて、機能別に調べれば分かるんですが、「Node.jsのこのバージョンではどこまでの機能使えるんだっけ?」という確認をしたいケースが多かったので、
一覧にまとまっているサイトを紹介します。
Node.js ES2015 Support
これを見れば万事解決。詳細な表にまとまってます。https://node.green/
以下、読み飛ばし可
最初、上記サイトの存在を見つけられなくて「なんで誰もまとめてないの?なら俺がやってやる!」と思って、自分でES2016/2017/2018の新機能とMDNの対応ページを見比べながらポチポチまとめていたのでありますが、頑張って書き終えたあと、もう少しググったら見事に発見してしまって、完全に「車輪の再発明」というか「写真の再撮影」的な単なる劣化コピーをしていたことに気づいたわけでして・・・orzググってなぜこれにたどり着けなかったのかなぁ。。
せめて上記サイトにたどり着く日本人が増えることを祈ってあえて以下も残しつつこのエントリを投稿します。
はじめに
前略ES2015は、import/export以外は「使えて当たり前」な感じなので、載せませんでした。
ES2018は未対応や「?」がまだ多かったり、ES2019以降もこのサイクルは続くので、
ES2016
| 機能 | 標準サポート | --harmonyでサポート | 備考 |
|---|---|---|---|
| Array#includes | 6.0.0 | 5.0.0 | |
べき乗演算子** |
7.0.0 | 6.5.0 |
ES2017
| 機能 | 標準サポート | --harmonyでサポート | 備考 |
|---|---|---|---|
| Object.values Object.entries |
7.0.0 | 6.5.0 | |
| String#padStart String#padEnd |
8.0.0 | 7.0.0 | |
| Object.getOwnPropertyDescriptors | 7.0.0 | 6.5.0 | |
| 関数の末尾のカンマ | 8.0.0 | ||
| async / await | 7.6.0 | 7.0.0 | |
| Atomics | 8.10.0 | wake()は非標準名 |
ES2018
| 機能 | 標準サポート | --harmonyでサポート | 備考 |
|---|---|---|---|
| テンプレートリテラルのエスケープシーケンス見直し | × | 2018.10.28現在 | |
| Promise#finally() | 10.0.0 | ||
Object リテラルでのスプレッド構文{ ...obj1, ...obj2 } |
8.3.0 | 8.0.0 | |
| for await...of | ? | 9.2.0 --harmony-async-iteration |
|
| 正規表現の追加 | ? | lookbehind assertions(後読み)以外の情報は載ってない? |
参考リンク
ES2016 / ES2017で実装される機能まとめES2018で追加される機能まとめ
コメント
コメントを投稿