Nowości w EcmaScript 2023 (ES 14)
Rok już prawie za nami, warto więc pochylić się nad tym, co EcmaScript. Zacznijmy od kilku funkcji, które zostały wprowadzone w tym roku.
Nowe funkcje
Jedną z małych, a przyjemnych zmian w ES2023 – jest seria funkcji, która zamiast wykonywać operację na przekazanej tablicy, zwraca nową tablicę.
Małe i przyjemne ulepszenie 🙂
.toReversed()
Wywołanie tej funkcji, zwraca NOWĄ tablicę w odwróconej kolejności.
const items = [1, 2, 3];
console.log(items); // [1, 2, 3]
const reversedItems = items.toReversed();
console.log(reversedItems); // [3, 2, 1]
console.log(items); // [1, 2, 3]
.toSpliced()
Zwraca nową tablicę z usuniętymi i/lub zastąpionymi elementami w przekazanym indeksie.
const months = ["Jan", "Mar", "Apr", "May"];
// Inserting an element at index 1
const months2 = months.toSpliced(1, 0, "Feb");
console.log(months2); // ["Jan", "Feb", "Mar", "Apr", "May"]
.toSorted()
Zwraca nową, posortowaną tablicę.
const months = ["Mar", "Jan", "Feb", "Dec"];
const sortedMonths = months.toSorted();
console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar']
console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec']
.findLast() oraz .findLastIndex()
Znajduje ostatni element, spełniający warunek, lub undefined.
const tab = [8,5,4,2,1]
tab.findLast((el) => el % 2) // 2
tab.findLastIndex((el) => el % 2) // 3
tab.findLast((el) => el % 10) // undefined
.with()
Modyfikuje pojedynczy element tablicy, na podstawie indeksu, zwracając nową tablicę.
const tab = [10,11,12,13]
tab.with(2, 'i like cheese') // [10,11,'i like cheese',13]
Wsparcie # (shebang)
Shebang, inaczej znak #!, jest charakterystyczny dla skryptów działających w systemach Unix. ECMAScript 14 oficjalnie wprowadza wsparcie dla shebang w plikach JavaScript, co pozwala na uruchamianie ich jako niezależnych skryptów.
#!/usr/bin/env node
console.log("Hello world");
Symbole jako klucze w weak collections
Dotychczas do WeakMaps można było używać TYLKO obiektów, teraz również symbole mogą pełnić tę rolę.
const map = new WeakMap
map.set(Symbol("hello"), 'world') // WeakMap {Symbol(hello) => 'world'}
Nie powstały więc, żadne game-changery, jednak nie można poprawiać doskonałego, prawda? Jeżeli się z tym nie zgadzasz, zajrzyj do artykułu o TypeScript żeby przekonać się, że nawet tak doskonały język, jak JavaScript, można poprawiać. 😉
Dodaj komentarz