ECMAScript 2018
JavaScript の命名規約は ES1、ES2、ES3、ES5、ES6 から始まります。
しかし、ECMAScript 2016 と 2017 は ES7 または ES8 と呼ばれませんでした。
2016 年以降、新しいバージョンは年によって命名されています(ECMAScript 2016/2017/2018)。
ECMAScript 2018 の新しい機能
本章では ECMAScript 2018 の新しい機能について説明します:
- アシスト イテレーション
- Promise Finally
- オブジェクト Rest 属性
- 新しい RegExp 特徴
JavaScript アシスト イテレーション
ECMAScript 2018 では、アシスト イテレータとイテレーション オブジェクトが追加されました。
アシスト イテレーションを通じて、以下の操作を行うことができます: for/of
ループで使用 await
キーワード。
例
for await () {}
Firefox および Safari は最初に JavaScript アシスト イテレーションをサポートするブラウザです:
Chrome と Firefox はすべての新しい RegExp 機能をサポートする最初のブラウザです: | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
2017 年 12 月 | 2020年1月 | 2017 年 11 月 | 2017 年 9 月 | 2018年1月 |
JavaScript Promise.finally
ECMAScript 2018 では Promise.finally
Promise オブジェクトの完全な実装が完了しました:
例
let myPromise = new Promise(); myPromise.then(); myPromise.catch(); myPromise.finally();
Chrome および Firefox は最初にサポート Promise.finally
のブラウザ:
Chrome と Firefox はすべての新しい RegExp 機能をサポートする最初のブラウザです: | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 63 | Edge 18 | Firefox 58 | Firefox 55 | Opera 50 |
2017 年 12 月 | 2018 年 11 月 | 2018年1月 | 2017年7月 | 2018年1月 |
JavaScript オブジェクトの Rest 属性
ECMAScript 2018 では Rest 属性が追加されました。
これにより、オブジェクトを破壊し、残りを新しいオブジェクトに収集することができます:
例
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; x; // 1 y; // 2 z; // { a: 3, b: 4 }
Chrome、Firefox および Opera は、オブジェクト Rest 属性をサポートする最初のブラウザです:
Chrome と Firefox はすべての新しい RegExp 機能をサポートする最初のブラウザです: | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 60 | Edge 79 | Chrome 60 | Firefox 55 | Safari 11.1 |
Opera 47 | 2020年1月 | 2018年3月 | 2017年7月 | 2018年3月 |
2017年8月
新しい JavaScript RegExp 特徴
- ECMAScript 2018 は 4 つの新しい RegExp 特徴を追加しました:
- Unicode 属性エスケープ (\p{...})
- 後行断言(Lookbehind Assertions) (?<= ) と (?<! )
- ネームキャプチャグループ(Named Capture Groups)
s (dotAll) フラグ
Chrome と Firefox はすべての新しい RegExp 機能をサポートする最初のブラウザです: | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
2018年1月 | 2020年1月 | 2020年6月 | 2018年9月 | 2018年2月 |