Vanhat JS-versiot on nimetty numeroilla: ES5 (2009) ja ES6 (2015).
Vuodesta 2016 alkaen versiot on nimetty vuosien mukaan: ECMAScript 2016, 2017, 2018, 2019, ...
Tässä luvussa esitellään ECMAScript 2018:n uudet ominaisuudet:
Asynkroninen iteraatio
Lupaa vihdoin
Objektin lepoominaisuudet
Uudet RegExp-ominaisuudet
JavaScript jaettu muisti
ECMAScript 2018 lisäsi asynkronisia iteraattoreita ja iteroitavia.
Asynkronisissa iterablesissa voimme käyttää odottaa avainsana for/of-silmukoissa.
for await () {}JavaScript asynkroninen iteraatio on tuettu kaikissa nykyaikaisissa selaimissa tammikuusta 2020 lähtien:
| Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
| Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
ECMAScript 2018 viimeistelee Promise-objektin täyden toteutuksen komennolla Promise.finally:
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();Promise.finally on tuettu kaikissa nykyaikaisissa selaimissa marraskuusta 2018 lähtien:
| Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
| Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
ECMAScript 2018 lisäsi lepoominaisuudet.
Tämän avulla voimme tuhota esineen ja kerätä ylijäämät uuteen esineeseen:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }Objektien lepo-ominaisuuksia tuetaan kaikissa nykyaikaisissa selaimissa tammikuusta 2020 lähtien:
| Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
| Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
ECMAScript 2018 lisäsi 4 uutta RegExp-ominaisuutta:
Unicode-ominaisuuden poistomerkit (\p{...})
Katso väitteiden taakse (?<= ) ja (?
nimeltä Capture Groups
s (pistekaikki) -lippu
Uusia RegExp-ominaisuuksia tuetaan kaikissa nykyaikaisissa selaimissa kesäkuusta 2020 lähtien:
| Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
| Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |
JavaScriptissä käytät Web Workers API:ta säikeiden luomiseen.
Worker-säikeitä käytetään koodin suorittamiseen taustalla, jotta pääohjelma voi jatkaa suorittamista.
Työntekijän säikeet toimivat samanaikaisesti pääohjelman kanssa. Eri osien samanaikainen suoritus ohjelma voi säästää aikaa.
Jaettu muisti on ominaisuus, jonka avulla säikeet (ohjelman eri osat) voivat siirtyä käyttää ja päivittää samoja tietoja samassa muistissa.
Sen sijaan, että välität tietoja säikeiden välillä, voit välittää SharedArrayBuffer-objektin joka osoittaa muistiin, johon tiedot tallennetaan.
SharedArrayBuffer-objekti edustaa kiinteäpituista raaka binaaridatapuskuria, joka on samanlainen kuin ArrayBuffer-objekti.