MC, 2025
Ilustracja do artykułu: JavaScript ES9 – Co nowego w ECMAScript 2018? Zobacz zmiany i przykłady!

JavaScript ES9 – Co nowego w ECMAScript 2018? Zobacz zmiany i przykłady!

JavaScript to jeden z najpopularniejszych języków programowania, który stale ewoluuje. Wraz z nowymi wersjami ECMAScript, język ten zyskuje kolejne funkcje, które ułatwiają życie programistom i pozwalają na bardziej efektywne pisanie kodu. W tym artykule przyjrzymy się wersji ES9 (ECMAScript 2018), która wprowadza interesujące zmiany i udoskonalenia. Zobaczymy, jakie nowości zawiera JavaScript ES9, jak je wykorzystać w praktyce, a także przedstawimy przykłady JavaScript ES9, które pomogą Ci w pełni wykorzystać nowe możliwości tego języka!

Czym jest ECMAScript 2018 i jak wpłynął na JavaScript?

ECMAScript to standard, na podstawie którego rozwija się język JavaScript. Co roku organizacja TC39 wprowadza kolejne zmiany i udoskonalenia, które mają na celu usprawnienie działania języka oraz ułatwienie programistom pisania bardziej przejrzystego i efektywnego kodu. JavaScript ES9, czyli ECMAScript 2018, został opublikowany w czerwcu 2018 roku i zawiera kilka istotnych nowości, które zdecydowanie warto poznać. W tej wersji skupiono się na funkcjonalności związanej z asynchronicznością, obiektami, a także na poprawie działania iteratorów i generatorów. Pora na szczegóły!

Nowości w JavaScript ES9

JavaScript ES9 to spora porcja nowych funkcji i ulepszeń, które wprowadza do języka. Poniżej przedstawiamy te najważniejsze:

1. Asynchroniczne iteratory i pętle for-await

Jedną z najbardziej oczekiwanych funkcji w JavaScript ES9 jest wsparcie dla asynchronicznych iteratorów i pętli for-await. Do tej pory iterowanie po danych asynchronicznych (np. po obietnicach) było dość skomplikowane. Wprowadzenie asynchronicznych iteratorów oraz pętli for-await znacznie uprościło ten proces.

Teraz możemy iterować po wynikach obietnic (promisów) tak samo, jak po tablicach, dzięki pętli for-await. Oto przykład, jak to działa:

async function fetchData() {
  let data = [1, 2, 3];
  for await (let num of data) {
    console.log(num);
  }
}

fetchData();

W tym przykładzie pętla for-await iteruje po tablicy, traktując jej elementy jak obietnice. Dzięki temu możemy łatwo przetwarzać asynchroniczne dane bez konieczności używania callbacków czy then.

2. Rest/Spread Properties dla obiektów

JavaScript ES9 wprowadza także możliwość stosowania operatorów rest i spread bezpośrednio w obiektach. Dzięki temu, manipulowanie obiektami stało się jeszcze łatwiejsze. Wcześniej, do używania tych operatorów byliśmy ograniczeni tylko do tablic, jednak teraz można ich używać także w kontekście obiektów.

Oto przykład, jak działa spread w obiektach:

const person = { name: 'John', age: 30 };
const updatedPerson = { ...person, age: 31 };
console.log(updatedPerson);

W powyższym przykładzie, operator spread tworzy nowy obiekt, który kopiuje właściwości z obiektu person, a następnie nadpisuje właściwość age. Jest to bardzo przydatne, gdy chcemy zrobić kopię obiektu, ale jednocześnie wprowadzić drobne zmiany.

3. Object.entries() i Object.values() w wersji ES9

W poprzednich wersjach ECMAScript, funkcje Object.entries() i Object.values() były już dostępne, ale nie były tak wydajne jak w wersji ES9. W ECMAScript 2018 te metody zostały zoptymalizowane, dzięki czemu działają szybciej i bardziej stabilnie.

Te funkcje umożliwiają uzyskanie tablicy par [klucz, wartość] (dla Object.entries()) oraz tablicy wartości (dla Object.values()) z obiektu. Zobaczmy, jak to wygląda w praktyce:

const user = { name: 'Alice', age: 25 };
console.log(Object.entries(user)); // [['name', 'Alice'], ['age', 25]]
console.log(Object.values(user));  // ['Alice', 25]

4. RegExp Lookbehind Assertions

Jednym z ciekawszych udoskonaleń w JavaScript ES9 jest możliwość stosowania lookbehind assertions w wyrażeniach regularnych. Dzięki tej funkcji, możemy sprawdzać, czy przed danym elementem występuje określony ciąg znaków. To przydatna funkcja, która może znacznie uprościć niektóre operacje na tekstach.

Przykład użycia lookbehind assertion:

const regex = /(?<=@)w+/;
const email = 'user@example.com';
const result = email.match(regex);
console.log(result); // ['example']

W tym przypadku, wyrażenie regularne szuka ciągu znaków, który znajduje się po znaku @. Dzięki zastosowaniu lookbehind, możemy łatwiej wykonywać takie operacje na tekstach.

5. Promise.finally()

Metoda finally() została wprowadzona do obiektów typu Promise w wersji ES9. Funkcja ta pozwala na określenie kodu, który ma zostać wykonany po zakończeniu obietnicy, niezależnie od tego, czy zakończyła się sukcesem, czy błędem. Jest to przydatne, gdy chcemy np. wykonać operacje sprzątania lub zamknięcia zasobów po zakończeniu działania asynchronicznego kodu.

fetch('https://api.example.com')
  .then(response => response.json())
  .catch(error => console.error(error))
  .finally(() => console.log('Zakończono operację'));

W tym przypadku, finally() zapewnia, że komunikat 'Zakończono operację' zostanie wyświetlony zawsze, niezależnie od tego, czy żądanie zakończyło się sukcesem, czy błędem.

Podsumowanie

JavaScript ES9 wprowadza szereg przydatnych i efektywnych funkcji, które ułatwiają programowanie w tym języku. Dzięki asynchronicznym iteratorom, operatorom rest/spread w obiektach, usprawnieniu metod Object.entries() i Object.values(), lookbehind assertions w wyrażeniach regularnych oraz metodzie Promise.finally(), programowanie w JavaScript stało się prostsze i bardziej elastyczne. Nowości w wersji ES9 są naprawdę wartościowe i warto z nich korzystać, by pisać czysty, nowoczesny i wydajny kod. Spróbuj wprowadzić je do swoich projektów i przekonaj się, jak bardzo mogą ułatwić Twoje codzienne programowanie!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: