ECMAScript 2018

Konvensi penamaan JavaScript dimulai dari ES1, ES2, ES3, ES5 dan ES6.

Namun, ECMAScript 2016 dan 2017 tidak disebut ES7 dan ES8.

Sejak 2016, versi baru dinamai berdasarkan tahun (ECMAScript 2016/2017/2018).

Fitur baru ECMAScript 2018

Bab ini memperkenalkan fitur baru ECMAScript 2018:

  • Iterasi Asinkron
  • Promise Finally
  • Sifat Rest objek
  • Kemampuan baru RegExp

Iterasi Asinkron JavaScript

ECMAScript 2018 menambahkan iterator asinkron dan objek yang dapat diulang.

Dengan iterasi asinkron, kami dapat for/of digunakan dalam pengulangan await kata kunci.

实例

for await () {}

Firefox dan Safari adalah pereka pengesanan pertama yang mendukung iterasi asinkron JavaScript:

Chrome IE Firefox Safari Opera
Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
Desember 2017 2020 年 1 月 November 2017 September 2017 2018 年 1 月

Promise.finally JavaScript

ECMAScript 2018 menggunakan Promise.finally Selesai melengkapkan implementasi objek Promise:

实例

let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();

Chrome dan Firefox adalah pereka pengesanan pertama yang mendukung Promise.finally pemetaan browser:

Chrome IE Firefox Safari Opera
Chrome 63 Edge 18 Firefox 58 Safari 11.1 Opera 50
Desember 2017 November 2018 2018 年 1 月 2018 年 3 月 2018 年 1 月

Sifat Rest Objek JavaScript

ECMAScript 2018 menambahkan sifat Rest.

Ini memungkinkan kami untuk merusak objek dan mengumpulkan sisanya ke objek baru:

实例

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }

Chrome、Firefox dan Opera adalah pereka pengesanan pertama yang menyokong sifat Rest objek:

Chrome IE Firefox Safari Opera
Chrome 60 Edge 79 Firefox 55 Safari 11.1 Opera 47
2017 年 7 月 2020 年 1 月 2017 年 8 月 2018 年 3 月 2017 年 8 月

新的 JavaScript RegExp 特性

ECMAScript 2018 添加了 4 个新的 RegExp 特性:

  • Unicode 属性转义 (\p{...})
  • 后行断言(Lookbehind Assertions) (?<= ) 和 (?<! )
  • 命名捕获组(Named Capture Groups)
  • s (dotAll) 标志

Chrome 和 Firefox 是第一批支持所有新 RegExp 功能的浏览器:

Chrome IE Firefox Safari Opera
Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
2018 年 1 月 2020 年 1 月 2020 年 6 月 2018 年 9 月 2018 年 2 月