Old JS versions are named by numbers: ES5 (2009) and ES6 (2015).
From 2016, versions are named by year: ECMAScript 2016, 2017, 2018, 2019, ...
This chapter introduces the new features in ECMAScript 2018:
ECMAScript 2018 added asynchronous iterators and iterables.
With asynchronous iterables, we can use the await
keyword in for/of
loops.
for await () {}
JavaScript asynchronous iteration is supported in all modern browsers since January 2020:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
ECMAScript 2018 finalizes the full implementation of the Promise object with Promise.finally
:
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Promise.finally
is supported in all modern browsers since November 2018:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
ECMAScript 2018 added rest properties.
This allows us to destruct an object and collect the leftovers onto a new object:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Object rest properties is supported in all modern browsers since January 2020:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
ECMAScript 2018 added 4 new RegExp features:
The new RegExp features is supported in all modern browsers since June 2020:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |
In JavaScript you use the Web Workers API to create threads.
Worker threads are used to execute code in the background so that the main program can continue execution.
Worker threads run simultaneously with the main program. Simultaneous execution of different parts of a program can be time-saving.
Shared memory is a feature that allows threads (different parts of a program) to access and update the same data in the same memory.
Instead of passing data between threads, you can pass a SharedArrayBuffer object that points to the memory where data is saved.
A SharedArrayBuffer object represents a fixed-length raw binary data buffer similar to the ArrayBuffer object.
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!