Nowości w ECMAScript 2023 (ES14)
JavaScript ciągle ewoluuje, a wraz z nim pojawiają się nowe wersje specyfikacji ECMAScript. W 2023 roku przypada premiera najnowszej wersji - ECMAScript 14. Choć zmiany nie są spektakularne, to wciąż wprowadzają ciekawe usprawnienia oraz poszerzają możliwości języka. Jeśli interesujesz się tym bardzo wnikliwie, to tutaj znajdziesz tegoroczną specyfikację.
Przejdźmy do najważniejszych nowości.
Nowości dla tablic w JavaScript
Nowy JavaScript przynosi kilka metod do manipulacji tablicami. Zobaczmy, co one dają.
Array.prototype.toSorted
Nową metodą dla tablic jest toSorted()
. Parametry są identyczne jak dla funkcji sort()
. W odróżnieniu od sort()
, toSorted()
tworzy nową tablicę zamiast modyfikować istniejącą.
const arr = [9,4,5,3,1]
arr.toSorted() // [1, 3, 4, 5, 9]
Array.prototype.toReversed
Podobnie jak toSorted()
, toReversed()
również tworzy nową tablicę, tym razem z elementami w odwrotnej kolejności.
const arr = [9,4,5,3,1]
arr.toReversed() // [1, 3, 5, 4, 9]
Array.prototype.toSpliced
Metoda toSpliced()
jest odpowiednikiem splice()
, ale zamiast modyfikować oryginalną tablicę, tworzy nową tablicę z wprowadzonymi zmianami. A to niespodzianka, prawda? ;)
const arr = [9,4,5,3,1]
arr.toSpliced(2, 1, 60) // [9, 4, 60, 3, 1]
Array.prototype.with
Metoda with()
pozwala na modyfikację pojedynczego elementu tablicy na podstawie indeksu, zwracając jednocześnie nową tablicę.
const arr = [9,4,5,3,1]
arr.with(2, 'bulldog') // [9, 4, 'bulldog', 3, 1]
Array.prototype.findLast
Metoda findLast()
pozwala na znalezienie ostatniego elementu
const arr = [2, 1, 5, 6, 7, 8]
arr.findLast((el) => el % 2) // 8
spełniającego warunek w tablicy. Jeśli brak takiego elementu, zwracane jest undefined
.
Array.prototype.findLastIndex
findLastIndex()
działa podobnie do findLast()
, ale zamiast zwracać element, zwraca jego indeks.
const arr = [2, 1, 5, 6, 7, 8]
arr.findLastIndex((el) => el % 2) // 5
Oficjalne wsparcie dla shebang
Shebang, czyli #!
, to znak charakterystyczny dla skryptów w systemach Unix. ECMAScript 14 wprowadza oficjalne wsparcie dla shebang w plikach JavaScript, co umożliwia ich uruchamianie jako samodzielnych skryptów. Zrobimy to właśnie tak:
#!/usr/bin/env node
console.log("Dzień dobry");
Symbole jako klucze w weak collections
Najważniejszą zmianą w ECMAScript 14 jest rozszerzenie obszaru zastosowania symboli jako kluczy 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("Foo"), 'abc') // WeakMap {Symbol(Foo) => 'abc'}
Podsumowanie
2023 przyniósł do języka JavaScript przede wszystkim drobne usprawnienia. Nowe zmiany nie zmieniają rzeczywistości programistów JS o 180 stopni. Wprowadzają natomiast kilka metod, które pomogą pisać lepszy kod. Chyba największym udogodnieniem będzie obsługa shebangów, dzięki którym skrypty JS będzie można wygodnie uruchamiać z linii poleceń.