Diversity w polskim IT
Bulldogjob
Bulldogjob

Nowości w ECMAScript 2023 (ES14)

Poznaj nowości w ECMAScript 2023, czyli wersji ES14. Wskoczyły ułatwienia dla programistów JavaScript.
11.08.20232 min
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ń.

<p>Loading...</p>