ECMAScript (ECMA - European Computer Manufacturers Association) je skriptovací jazyk, který je v souladu s JavaScriptem a některými dalšími programovacími jazyky. Je to skriptovací jazyk, který tvoří základy pro JavaScript a Node.js. ECMA vyvíjí standardy pro obor informačních technologií a jazyky jako je například JavaScript, nebo Dart-lang a C#. Tyhle nové standardy pro ECMAScript se vydávají pravidelně každý rok.
S příchodem nové verze nečekajme žádnou revoluci, jak tomu bylo u JavaScriptu ES6 (ECMAScript 2015).
Array find from last
Přibude nám nová metoda na pole findLast()
a findLastIndex()
. Tyhle metody budou dělat to samé co find()
a findIndex()
ale z druhého konce pole. To se v některých situacích určitě hodí, vyhneme se různým pomocným a často zbytečně složitým funkcím.
const isEven = (number) => number % 2 === 0;
const numbers = [1, 2, 3, 4];
console.log(numbers.findLast(isEven)); // vypíše nám 4
console.log(numbers.findLastIndex(isEven)); // vypíše nám 3
Hashbang Grammar
Hashband Grammar známy jako shebang je sekvence znaku na začátku spustitelného skriptu v JavaScriptu. Většina komentářu od vývojářu je dokumentace jako kód funguje a proč je kód napsaný jak je. Hashband komentáře začínaji znakmi #!
a specifikují cestu pre JavaScript interpreter, který chceme použit pro spuštění scriptu. CLI JavaScriptu (například Node.js) veme hashbang a pošle validní kód do JavaScript enginu. To přibližuje JavaScript standardu ostatních programovacích jazyků.
#!/usr/bin/env node
console.log('hi 👋');
Symboly jako WeakMap keys
Aktuálně můžeme použit iba objekty jako klíče vo WeakMap. Klíče vo WeakMap chceme, aby byly unikátní a symboly byly definované jako neměnný způsob, který nelze znovu vytvořit. To nám dáva možnost použít symboly jako klíče vo WeakMap.
const weak = new WeakMap();
const key = Symbol("ref");
weak.set(key, "ECMAScript 2023");
console.log(weak.get(key)); // vypíše nám ECMAScript 2023
Change Array by Copy
Metody jako reverse()
, sort()
a splice()
upraví původní pole. To víme i z našeho článku na fordevs o array metodach. Nové metody .toReversed()
, .toSorted()
a .toSpliced()
jsou ekvivalentem zmíněných ale neupraví původní hodnoty ale vráti nám pole nové. Dále nám přibude metoda with()
, která vráti nové pole a změní hodnotu na danom indexe. Přijmá jako argument index a value.
const original = [1, 2, 3, 4];
const reversed = original.toReversed();
console.log(original);
// [ 1, 2, 3, 4 ]
console.log(reversed);
// [ 4, 3, 2, 1 ]
const original = [1, 3, 2, 4];
const sorted = original.toSorted();
console.log(original);
// [ 1, 3, 2, 4 ]
console.log(sorted);
// [ 1, 2, 3, 4 ]
const original = [1, 4];
const spliced = original.toSpliced(1, 0, 2, 3);
console.log(original);
// [ 1, 4 ]
console.log(spliced);
// [ 1, 2, 3, 4 ]
const original = [1, 2, 2, 4];
const withThree = original.with(2, 3);
console.log(original);
// [ 1, 2, 2, 4 ]
console.log(withThree);
// [ 1, 2, 3, 4 ]
Zdroje
https://thenewstack.io/the-new-javascript-features-coming-in-ecmascript-2023/
https://pawelgrzybek.com/whats-new-in-ecmascript-2023/