旧的 JS 版本以数字命名:ES5 (2009) 和 ES6 (2015)。
从 2016 年开始,版本按年份命名:ECMAScript 2016、2017、2018、2019,...
本章介绍 ECMAScript 2018 中的新功能:
ECMAScript 2018 添加了异步迭代器和可迭代对象。
对于异步迭代,我们可以使用await
关键字在for/of
循环。
for await () {}
自 2020 年 1 月起,所有现代浏览器都支持 JavaScript 异步迭代:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
ECMAScript 2018 最终完成了 Promise 对象的完整实现Promise.finally
:
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Promise.finally
自 2018 年 11 月起所有现代浏览器均支持:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
ECMAScript 2018 添加了剩余属性。
这允许我们破坏一个对象并将剩余物收集到一个新对象上:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
自 2020 年 1 月起,所有现代浏览器都支持对象剩余属性:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
ECMAScript 2018 添加了 4 个新的 RegExp 功能:
自 2020 年 6 月起,所有现代浏览器都支持新的 RegExp 功能:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |
在 JavaScript 中,您可以使用 Web Workers API 来创建线程。
工作线程用于在后台执行代码,以便主程序可以继续执行。
工作线程与主程序同时运行。同时执行程序的不同部分可以节省时间。
共享内存是一种允许线程(程序的不同部分)访问和更新同一内存中的相同数据的功能。
您可以传递一个指向保存数据的内存的 SharedArrayBuffer 对象,而不是在线程之间传递数据。
SharedArrayBuffer 对象表示与 ArrayBuffer 对象类似的固定长度的原始二进制数据缓冲区。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!