Gamle JS-versioner er navngivet med numre: ES5 (2009) og ES6 (2015).
Fra 2016 er versionerne navngivet efter år: ECMAScript 2016, 2017, 2018, 2019, ...
Dette kapitel introducerer de nye funktioner i ECMAScript 2018:
Asynkron iteration
Lov endelig
Egenskaber for objektrest
Nye RegExp-funktioner
JavaScript delt hukommelse
ECMAScript 2018 tilføjede asynkrone iteratorer og iterables.
Med asynkrone iterables kan vi bruge afvente
søgeord i for/af
-løkker.
for await () {}
JavaScript asynkron iteration er understøttet i alle moderne browsere siden januar 2020:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
ECMAScript 2018 afslutter den fulde implementering af Promise-objektet med Promise.finally
:
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Promise.finally
er understøttet i alle moderne browsere siden 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 tilføjede hvileegenskaber.
Dette giver os mulighed for at ødelægge en genstand og samle resterne på en ny genstand:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Objekthvileegenskaber er understøttet i alle moderne browsere siden januar 2020:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
ECMAScript 2018 tilføjede 4 nye RegExp-funktioner:
Unicode Escapes (\p{...})
Lookbehind Assertions (?<= ) og (?
Navngivne Capture Groups
s (dotAll) Flag
De nye RegExp-funktioner er understøttet i alle moderne browsere siden juni 2020:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |
I JavaScript bruger du Web Workers API til at oprette tråde.
Arbejdetråde bruges til at udføre kode i baggrunden, så hovedprogrammet kan fortsætte eksekveringen.
Arbejdstråde kører samtidigt med hovedprogrammet. Samtidig udførelse af forskellige dele af et program kan være tidsbesparende.
Delt hukommelse er en funktion, der tillader tråde (forskellige dele af et program) at få adgang til og opdatere de samme data i den samme hukommelse.
I stedet for at overføre data mellem tråde, kan du sende et SharedArrayBuffer-objekt der peger på den hukommelse, hvor data gemmes.
Et SharedArrayBuffer-objekt repræsenterer en rå binær databuffer med fast længde, der ligner ArrayBuffer-objektet.