ECMAScript 2020
Numer wersji JavaScript
Starsze wersje JS są nazywane liczbami: ES5 (2009) i ES6 (2015).
Od 2016 roku wersje są nazywane rokiem: ECMAScript 2016, 2017, 2018, 2019, ...
Nowe cechy w ES2020:
- BigInt
- Metoda stringowa matchAll()
- Operator sumowania wartości domyślnej (??)
- Operator węzła opcjonalnego (?.)
- Operator AND przypisania (&&=)
- Operator OR przypisania (||=)
- Operator sumowania wartości domyślnej (??=)
- Promise.allSettled()
- Dynamiczny import
Ostrzeżenie
Te cechy są stosunkowo nowe.
Starsze przeglądarki mogą wymagać kodu zastępczego (Polyfill).
BigInt w JavaScript
Zmienne BigInt w JavaScriptie są używane do przechowywania wartości dużych liczb całkowitych, które nie mogą być wyrażone za pomocą zwykłych liczb całkowitych w JavaScript.
JavaScript może dokładnie wyrażać liczby całkowite do 15 cyfr.
Instancja Integer
let x = 999999999999999; let y = 9999999999999999; // za duże
Instancja BigInt
let x = 9999999999999999; let y = 9999999999999999n;
Aby utworzyć BigInt, użyj: n
Dodaj do końca liczby całkowitej lub wywołaj BigInt():
Przykład
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
Typ JavaScript dla BigInt to "bigint":
Przykład
let x = BigInt(999999999999999); let type = typeof x;
Od września 2020 roku wszystkie nowoczesne przeglądarki obsługują BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
maj 2018 roku | styczeń 2020 roku | lipiec 2019 roku | Wrzesień 2020 roku | czerwiec 2018 roku |
Metoda matchAll() dla ciągów znaków JavaScript
przed ES2020 nie istniała metoda string dostępna do wyszukiwania wszystkich wystąpień ciągu znaków w ciągu.
Przykład
const iterator = text.matchAll("Cats");
jeśli parametr jest wyrażeniem regularnym, musisz ustawić znak globalny (g
) w przeciwnym razie zostanie rzucony błąd TypeError.
Przykład
const iterator = text.matchAll(/Cats/g);
jeśli należy przeprowadzić wyszukiwanie bez rozróżniania wielkości liter, musisz ustawić znak bez rozróżniania wielkości liter (i
)
Przykład
const iterator = text.matchAll(/Cats/gi);
Uwaga:ES2021 został wprowadzony metodę string replaceAll().
Operator sumowania pustych wartości (Nullish Coalescing Operator) (?? operator)
jeśli pierwszy parametr nie jest wartością pustą (null
lub undefined
jeśli ??
Operator zwraca pierwszy parametr.
w przeciwnym razie zwróć drugi.
Przykład
let name = null; let text = "missing"; let result = name ?? text;
od marca 2020 roku wszystkie nowoczesne przeglądarki wspierają operator nullish:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
luty 2020 roku | luty 2020 roku | styczeń 2020 roku | Marzec 2020 roku | Marzec 2020 roku |
Operator węzła opcjonalnego (Optional Chaining Operator) (?. operator)
jeśli obiekt jest undefined
lub null
jeśliOperator węzła opcjonalnegozwraca undefined
(zamiast rzucać błąd).
Przykład
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
od marca 2020 roku wszystkie nowoczesne przeglądarki wspierają ?.=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
luty 2020 roku | luty 2020 roku | Marzec 2020 roku | Marzec 2020 roku | Marzec 2020 roku |
Operator przypisania logicznego AND (operator &&=)
Operator logicznego AND przypisaniaużywany między dwoma wartościami.
jeśli pierwsza wartość jest prawda
i przypisz drugą wartość.
Przykład operatora logicznego AND przypisania
let x = 100; x &&= 5;
Od września 2020 roku wszystkie współczesne przeglądarki wspierają &&=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Sierpień 2020 roku | Sierpień 2020 roku | Marzec 2020 roku | Wrzesień 2020 roku | Wrzesień 2020 roku |
Operator logicznego OR przypisania (||= operator)
Operator logicznego OR przypisaniaużywany między dwoma wartościami.
jeśli pierwsza wartość jest fałsz
i przypisz drugą wartość.
Przykład operatora logicznego OR przypisania
let x = 10; x ||= 5;
Od września 2020 roku wszystkie współczesne przeglądarki wspierają ||=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Sierpień 2020 roku | Sierpień 2020 roku | Marzec 2020 roku | Wrzesień 2020 roku | Wrzesień 2020 roku |
Operator sumowania brakujących wartości przypisania (operator ??=)
Operator sumowania brakujących wartości przypisania(Nullish Coalescing Assignment Operator)jest używany między dwoma wartościami.
jeśli pierwsza wartość undefined
lub null
i przypisz drugą wartość.
Przykład sumowania brakujących wartości przypisania
let x = 10; x ??= 5;
Od września 2020 roku wszystkie współczesne przeglądarki wspierają ??=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Sierpień 2020 roku | Sierpień 2020 roku | Marzec 2020 roku | Wrzesień 2020 roku | Wrzesień 2020 roku |