ECMAScript 2018
JavaScriptの命名規則は、ES1、ES2、ES3、ES5、およびES6から始まりました。
ただし、ECMAScript2016および2017はES7およびES8とは呼ばれていませんでした。
2016年以降、新しいバージョンは年ごとに名前が付けられています(ECMAScript 2016/2017/2018)。
ECMAScript2018の新機能
この章では、ECMAScript2018の新機能を紹介します。
JavaScript非同期反復
ECMAScript 2018は、非同期イテレーターとイテレーターを追加しました。
非同期反復可能オブジェクトを使用すると、await
キーワードをfor/of
ループで使用できます。
例
for await () {}
FirefoxとSafariは、JavaScript非同期反復をサポートする最初のブラウザーでした。
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
JavaScript Promise.finally
ECMAScript 2018は、Promiseオブジェクトの完全な実装を次のように完成させますPromise.finally
。
例
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
ChromeとFirefoxは、以下をサポートする最初のブラウザでしたPromise.finally
。
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
JavaScriptオブジェクトのRESTプロパティ
ECMAScript 2018は、残りのプロパティを追加しました。
これにより、オブジェクトを破棄し、残りを新しいオブジェクトに収集できます。
例
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Chrome、Firefox、ans Operaは、オブジェクトのRESTプロパティをサポートする最初のブラウザでした。
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
新しいJavaScript正規表現機能
ECMAScript 2018は、4つの新しいRegExp機能を追加しました。
- Unicodeプロパティエスケープ(\ p {...})
- アサーションの後ろを見る(?<=)および(?<!)
- 名前付きキャプチャグループ
- s(dotAll)フラグ
ChromeとFirefoxは、すべての新しい正規表現機能をサポートする最初のブラウザでした。
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |