Czy jesteś gotowy na nowości w ECMAScript 2023?

Podobno najważniejsze rzeczy są w najmniejszych szczegółach. Ta zasada ma zastosowanie również do najnowszej aktualizacji ECMAScript 2023. Nowa wersja może nie wydawać się rewolucyjna, ale oferuje kilka subtelnym zmian, które z pewnością sprawią, że nasze życie jako deweloperów będzie trochę łatwiejsze.
- Symbole jako klucze WeakMap
Pierwsza z nowości to możliwość używania symboli jako kluczy w WeakMap. Przyznam, że to drobna zmiana, ale może mieć duży wpływ na to, jak korzystamy z tych nowych struktur danych.
```javascript
let mySymbol = Symbol('mySymbol');
let myWeakMap = new WeakMap();
myWeakMap.set(mySymbol, "value associated with mySymbol");
console.log(myWeakMap.get(mySymbol)); // "value associated with mySymbol"
```
- Zmiana tablicy przez kopiowanie
Kolejna aktualizacja, która zasługuje na uwagę, to wprowadzenie "Zmiany tablicy przez kopiowanie" (Change Array by Copy). Ta funkcja daje nam nowe metody sortowania, odwracania i nadpisywania danych bez mutacji tablicy, w której są przechowywane
```javascript
let originalArray = [1, 2, 3, 4, 5];
let reversedArray = originalArray.reverseWith();
console.log(originalArray); // [1, 2, 3, 4, 5]
console.log(reversedArray); // [5, 4, 3, 2, 1]
```
Dla zwolenników programowania funkcyjnego, niemutowanie danych jest podstawą dobrego kodu. Czyste funkcje, które nie powodują efektów ubocznych, są łatwiejsze do testowania, debugowania i utrzymania. Więcej niemutowalności w JavaScript? Tak, proszę!
- Wyszukiwanie w tablicy od końca
Metoda `findLast` jest niezwykle przydatna, gdy chcemy przeszukać naszą tablicę od końca, a nie od początku. Use case w praktyce może być taki, że szukamy najnowszego elementu pasującego do określonego kryterium w tablicy chronologicznej. W przeciwnym razie musielibyśmy przeszukać całą tablicę od początku, co może być czasochłonne, zwłaszcza dla dużych tablic.
To skarb dla programistów, którzy chcą optymalizować swój kod.
```javascript
let myArray = [1, 2, 3, 2, 1];
let lastTwo = myArray.findLast(element => element == 2);
console.log(lastTwo); // 2
```
- Oficjalna gramatyka hashbang
Ostatnia, ale nie mniej ważna, aktualizacja to oficjalna gramatyka hashbang. Komentarze hashbang, które zaczynają się od `#!`, są używane do określania ścieżki do interpretera JavaScript, który chcesz używać do uruchomienia skryptu lub modułu, który następuje po komentarzu. Wcześniej była to konwencja przejęta z plików skryptów UNIX. Ta zmiana może wydawać się mała, ale sprawia, że JavaScript staje się bardziej spójny z innymi językami
```javascript
#!/usr/bin/env node
console.log("Hello, World!");
```
To są cztery propozycje, które najprawdopodobniej znajdą się w ECMAScript 2023. Mimo że aktualizacja jest mała, są też większe propozycje, które osiągnęły etap trzy i robią duże postępy. Wśród nich są pomocnicy iteratorów, Temporal, explicit resource management i dekoratory. Może uda im się trafić do ECMAScript 2024
Czy jesteście gotowi na te zmiany? Powodzenia!
Źródła:
- https://thenewstack.io/the-new-javascript-features-coming-in-ecmascript-2023/)
- https://tc39.es/ecma262/2023/
Autor artykułu

Daniel Kłys