ECMAScript 2018
Konwencja nazewnictwa JavaScript rozpoczęła się od ES1, ES2, ES3, ES5 i ES6.
Jednak ECMAScript 2016 i 2017 nie nosiły nazw ES7 i ES8.
Od 2016 nowe wersje są nazwane według roku (ECMAScript 2016 / 2017 / 2018).
Nowe funkcje w ECMAScript 2018
Ten rozdział przedstawia nowe funkcje w ECMAScript 2018:
Asynchroniczna iteracja JavaScript
ECMAScript 2018 dodał asynchroniczne iteratory i iteratory.
W przypadku iteracji asynchronicznych możemy użyć await
słowa kluczowego w for/of
pętlach.
Przykład
for await () {}
Firefox i Safari były pierwszymi przeglądarkami obsługującymi asynchroniczną iterację JavaScript:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
Obietnica JavaScript.wreszcie
ECMAScript 2018 finalizuje pełną implementację obiektu Promise za pomocą Promise.finally
:
Przykład
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Chrome i Firefox były pierwszymi przeglądarkami obsługującymi Promise.finally
:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
Właściwości pozostałej części obiektu JavaScript
ECMAScript 2018 dodał właściwości odpoczynku.
To pozwala nam zniszczyć obiekt i zebrać resztki na nowy obiekt:
Przykład
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Chrome, Firefox i Opera były pierwszymi przeglądarkami obsługującymi właściwości odpoczynku obiektów:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
Nowe funkcje RegExp JavaScript
ECMAScript 2018 dodał 4 nowe funkcje RegExp:
- Ucieczki właściwości Unicode (\p{...})
- Asercje wsteczne (?<= ) i (?<! )
- Nazwane grupy przechwytywania
- s (kropkaWszystko) Flaga
Chrome i Firefox były pierwszymi przeglądarkami obsługującymi wszystkie nowe funkcje RegExp:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |