Staré verze JS jsou pojmenovány podle čísel: ES5 (2009) a ES6 (2015).
Od roku 2016 jsou verze pojmenovány podle roku: ECMAScript 2016, 2017, 2018, 2019, ...
Tato kapitola představuje nové funkce v ECMAScript 2018:
Asynchronní iterace
Slib konečně
Zbytkové vlastnosti objektu
Nové funkce RegExp
Sdílená paměť JavaScriptu
ECMAScript 2018 přidal asynchronní iterátory a iterovatelné.
U asynchronních iterovatelných položek můžeme použít await
klíčové slovo v cyklech for/of
.
for await () {}
Asynchronní iterace JavaScriptu je podporována ve všech moderních prohlížečích od ledna 2020:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
ECMAScript 2018 dokončuje úplnou implementaci objektu Promise pomocí Promise.finally
:
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Promise.finally
je od listopadu 2018 podporován ve všech moderních prohlížečích:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
ECMAScript 2018 přidal odpočinkové vlastnosti.
To nám umožňuje zničit objekt a shromáždit zbytky na nový objekt:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Vlastnosti zbytku objektů jsou podporovány ve všech moderních prohlížečích od ledna 2020:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
ECMAScript 2018 přidal 4 nové funkce RegExp:
Unicode vlastnosti Escape (\p{...})
Lookbehind Assertions (?<= ) a (?
Pojmenované skupiny zachycení
s (tečkaVše) příznak
Nové funkce RegExp jsou podporovány ve všech moderních prohlížečích od června 2020:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |
V JavaScriptu používáte k vytváření vláken rozhraní Web Workers API.
Pracovní vlákna se používají ke spouštění kódu na pozadí, takže hlavní program může pokračovat ve vykonávání.
Pracovní vlákna běží současně s hlavním programem. Současné provádění různých částí programu může šetřit čas.
Sdílená paměť je funkce, která umožňuje vláknům (různým částem programu). přistupovat a aktualizovat stejná data ve stejné paměti.
Místo předávání dat mezi vlákny můžete předat objekt SharedArrayBuffer který ukazuje na paměť, kde jsou data uložena.
Objekt SharedArrayBuffer představuje nezpracovanou vyrovnávací paměť binárních dat s pevnou délkou podobnou objektu ArrayBuffer.