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月