MC, 2025
Ilustracja do artykułu: Co nowego w JS 2020? Oto najważniejsze zmiany i funkcje!

Co nowego w JS 2020? Oto najważniejsze zmiany i funkcje!

JavaScript, jak każde nowoczesne narzędzie programistyczne, nieustannie się rozwija, a każda nowa wersja wprowadza zmiany, które mogą znacząco ułatwić pracę programistom. Rok 2020 w świecie JavaScriptu był rokiem zmian i usprawnień, które miały na celu poprawienie wygody kodowania, wydajności oraz kompatybilności. Choć JavaScript 2020 nie wprowadził rewolucyjnych zmian, to jednak nie brakowało nowinek, które warto poznać. W tym artykule przedstawiamy najważniejsze zmiany w JS 2020 oraz przykłady, jak można je wykorzystać w praktyce.

Nowości w JavaScript 2020

Rok 2020 był bardzo interesujący dla społeczności programistów, szczególnie tych, którzy codziennie pracują z JavaScript. Choć nie był to rok pełen przełomowych zmian, to pojawiło się kilka ważnych usprawnień, które znacząco wpływają na jakość i wydajność pisania kodu w tym języku. Poniżej przedstawiamy najważniejsze z nich.

1. Optional Chaining (Łańcuch opcjonalny)

Jedną z największych nowości w JavaScript 2020 była implementacja funkcji Optional Chaining (?.), która pozwala na bezpieczne uzyskiwanie dostępu do głęboko zagnieżdżonych właściwości obiektów, bez konieczności sprawdzania, czy obiekt lub jego część jest zdefiniowana. To świetne rozwiązanie, szczególnie gdy mamy do czynienia z danymi pochodzącymi z zewnętrznych źródeł, gdzie nie możemy być pewni struktury obiektu.

Przykład użycia Optional Chaining:

const user = {
  name: 'Janek',
  address: {
    street: 'Polska 1',
    city: 'Warszawa'
  }
};

console.log(user?.address?.city); // Warszawa
console.log(user?.address?.zipcode); // undefined
console.log(user?.phone?.number); // undefined

Dzięki tej funkcji, nie musimy już sprawdzać, czy obiekt `address` istnieje, aby uzyskać dostęp do `city`. Jeśli którakolwiek część łańcucha jest `undefined` lub `null`, zamiast błędu, zwróci `undefined`.

2. Nullish Coalescing Operator (Operator współczynnika nullish)

Nullish Coalescing Operator (??) to kolejna przydatna nowość, która ułatwia pracę z wartościami `null` i `undefined`. Operator ten działa w sposób podobny do operatora logicznego OR (||), ale z tą różnicą, że ignoruje wartości `null` i `undefined`, podczas gdy OR ignoruje również inne "fałszywe" wartości, takie jak `0`, `false` czy pusty string (`""`). Dzięki temu operatorowi, łatwiej jest ustawić wartości domyślne, tylko gdy zmienna jest rzeczywiście `null` lub `undefined`.

Przykład użycia Nullish Coalescing Operator:

let userAge = 0;
let defaultAge = 18;

console.log(userAge ?? defaultAge); // 0 (brak zmiany, ponieważ 0 nie jest null lub undefined)

let userName = '';
let defaultName = 'Jan';

console.log(userName ?? defaultName); // '' (brak zmiany, ponieważ pusty string nie jest null lub undefined)

W powyższym przykładzie, operator `??` sprawia, że zmienne o wartości `0` lub pustym stringu nie zostaną zamienione na wartość domyślną, co jest dużą różnicą w porównaniu do operatora `||`.

3. BigInt

BigInt to nowa funkcjonalność, która pozwala na przechowywanie i operowanie na bardzo dużych liczbach całkowitych, które nie mieszczą się w tradycyjnych typach liczbowych (np. `Number` w JavaScriptie). Dzięki BigInt, możemy manipulować liczbami większymi niż `2^53 - 1`, co jest przydatne w przypadku obliczeń naukowych, finansowych czy kryptograficznych.

Przykład użycia BigInt:

const largeNumber = 123456789123456789123456789n;
const anotherLargeNumber = 987654321987654321987654321n;

console.log(largeNumber + anotherLargeNumber); // 1111111111111111111111111110n

Warto pamiętać, że BigInt jest traktowane jako odrębny typ od `Number`, więc nie można łączyć ich bezpośrednio w operacjach. Jeśli chcemy dodać do siebie BigInt i Number, należy odpowiednio przekształcić typy.

4. Promise.allSettled

Promise.allSettled to nowa metoda, która pozwala na obsługę wielu promes w taki sposób, aby po zakończeniu wszystkich (nawet tych, które zakończą się błędem), zwróciła wynik w postaci tablicy z obiektami zawierającymi status każdej promesy.

Przykład użycia Promise.allSettled:

const promise1 = Promise.resolve(1);
const promise2 = Promise.reject('Błąd');
const promise3 = Promise.resolve(3);

Promise.allSettled([promise1, promise2, promise3]).then((results) => {
  results.forEach(result => {
    console.log(result.status);
    if (result.status === 'fulfilled') {
      console.log(result.value);
    } else {
      console.log(result.reason);
    }
  });
});

W tym przypadku, niezależnie od tego, czy promesa zakończy się sukcesem, czy błędem, Promise.allSettled zwróci wynik zawierający zarówno wartości sukcesów, jak i informacje o błędach.

Podsumowanie

JavaScript 2020 wprowadził kilka naprawdę interesujących funkcji, które znacznie ułatwiają codzienne pisanie kodu. Optional Chaining, Nullish Coalescing Operator, BigInt oraz Promise.allSettled to tylko niektóre z nowości, które zostały wprowadzone, aby poprawić jakość i wygodę pracy z JavaScript. Dzięki tym funkcjom, programiści mogą pisać bardziej elegancki, bezpieczny i efektywny kod.

Jeśli chcesz być na bieżąco z nowinkami w JavaScript, warto śledzić rozwój języka, testować nowe funkcje i wykorzystywać je w swoich projektach. Rok 2020 był tylko kolejnym krokiem w rozwoju tego popularnego języka programowania, a z pewnością kolejne lata przyniosą jeszcze więcej innowacji!

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

Imię:
Treść: