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 关键字。

tarihi

for await () {}

Firefox 和 Safari 是第一批支持 JavaScript 异步迭代的浏览器:

Chrome da Firefox sun zama babban ƙungiyar ƙashe da suka ƙirar dukkanin ƙirar RegExp: IE Firefox Safari Opera
Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
2017 年 12 月 Janairu 2020 2017 年 11 月 2017 年 9 月 Janairu 2018

JavaScript Promise.finally

ECMAScript 2018 使用 Promise.finally 完成了 Promise 对象的完整实现:

tarihi

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

Chrome 和 Firefox 是第一批支持 Promise.finally 的浏览器:

Chrome da Firefox sun zama babban ƙungiyar ƙashe da suka ƙirar dukkanin ƙirar RegExp: IE Firefox Safari Opera
Chrome 63 Edge 18 Firefox 58 Safari 11.1 Opera 50
2017 年 12 月 2018 年 11 月 Janairu 2018 Maris 2018 Janairu 2018

JavaScript 对象 Rest 属性

ECMAScript 2018 添加了 Rest 属性。

这允许我们破坏一个对象并将剩余物收集到一个新对象上:

tarihi

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

Chrome, Firefox da Opera sunan kungiyar suna suka amincewa da kimiya Rest a cikin kwallon yanar gizo:

Chrome da Firefox sun zama babban ƙungiyar ƙashe da suka ƙirar dukkanin ƙirar RegExp: IE Firefox Safari Opera
Chrome 60 Edge 79 Firefox 55 Safari 11.1 Opera 47
Yuli 2017 Janairu 2020 Satumba 2017 Maris 2018 Satumba 2017

Ƙirar RegExp na JavaScript na farko

Ƙirar RegExp na JavaScript na farko

  • ECMAScript 2018 ta kira 4 ƙirar RegExp:
  • Unicode Attribute Escapes (\p{...})
  • Ƙirar Lookbehind Assertions (?<= ) da (?<! )
  • Ƙirar Capture Groups (Named Capture Groups)

Ƙirar s (dotAll)

Chrome da Firefox sun zama babban ƙungiyar ƙashe da suka ƙirar dukkanin ƙirar RegExp: IE Firefox Safari Opera
Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
Janairu 2018 Janairu 2020 Yuni 2020 Satumba 2018 Fabrairu 2018