ECMAScript 2020
Versione di JavaScript
Le vecchie versioni di JS vengono denominate con numeri: ES5 (2009) e ES6 (2015).
Dalla versione 2016, le versioni vengono denominate per anno: ECMAScript 2016, 2017, 2018, 2019, ...
Nuove caratteristiche di ES2020:
- BigInt
- Metodo di stringa matchAll()
- Operatore di fusione di valori vuoti (??)
- Operatore di chain opzionale (?.)
- Operatore di assegnazione AND logico (&&=)
- Operatore di assegnazione OR logico (||=)
- Operatore di assegnazione di fusione di valori vuoti (??=)
- Promise.allSettled()
- Importazione dinamica
Attenzione
Queste caratteristiche sono relativamente nuove.
I browser più vecchi potrebbero richiedere codice di sostituzione (Polyfill).
BigInt di JavaScript
Le variabili BigInt JavaScript vengono utilizzate per memorizzare valori di grandi numeri che non possono essere rappresentati con numeri JavaScript normali.
Il numero intero JavaScript può rappresentare al massimo con precisione 15 cifre.
Esempio di istanza Integer
let x = 999999999999999; let y = 9999999999999999; // Troppo grande
Esempio di istanza BigInt
let x = 9999999999999999; let y = 9999999999999999n;
Per creare un BigInt, è necessario aggiungere n
Aggiungere alla fine di un numero intero o chiamare BigInt():
Esempio
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
Il tipo JavaScript di BigInt è "bigint":
Esempio
let x = BigInt(999999999999999); let type = typeof x;
Da settembre 2020, tutti i browser moderni supportano BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Maggio 2018 | Gennaio 2020 | Luglio 2019 | Settembre 2020 | Giugno 2018 |
Metodo matchAll() della stringa JavaScript
Prima di ES2020, non esistevano metodi di stringa utilizzabili per cercare tutte le occorrenze di una stringa.
Esempio
const iterator = text.matchAll("Cats");
Se il parametro è un'espressione regolare, è necessario impostare il flag globale (g
) altrimenti viene lanciato un TypeError.
Esempio
const iterator = text.matchAll(/Cats/g);
Se si desidera una ricerca senza distinzione tra maiuscole e minuscole, è necessario impostare il flag senza distinzione tra maiuscole e minuscole (i
)
Esempio
const iterator = text.matchAll(/Cats/gi);
Suggerimento:ES2021 È stato introdotto il metodo di stringa replaceAll().
Operatore di combinazione di valori vuoti (Nullish Coalescing Operator) (?? operatore)
se il primo parametro non è un valore vuoto (null
o undefined
quindi ??
L'operatore restituisce il primo parametro.
altrimenti restituisce il secondo.
Esempio
let name = null; let text = "missing"; let result = name ?? text;
Da marzo 2020, tutti i browser moderni supportano gli operatori nullish:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Febbraio 2020 | Febbraio 2020 | Gennaio 2020 | Marzo 2020 | Marzo 2020 |
Operatore di catena opzionale (Optional Chaining Operator) (?. operatore)
se l'oggetto è undefined
o null
quindiOperatore di catena opzionaleRestituisce undefined
(invece di lanciare un errore).
Esempio
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Da marzo 2020, tutti i browser moderni supportano ?.=
Operatore:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Febbraio 2020 | Febbraio 2020 | Marzo 2020 | Marzo 2020 | Marzo 2020 |
Operatore di assegnazione AND logico (operatore &&=)
Operatore di assegnamento logico ANDusato tra due valori.
se il primo valore è vero
se la prima valore è null
Esempio di assegnamento logico AND
let x = 100; x &&= 5;
Da settembre 2020, tutti i browser moderni lo supportano &&=
Operatore:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto 2020 | Agosto 2020 | Marzo 2020 | Settembre 2020 | Settembre 2020 |
Operatore di assegnamento logico OR (||= operatore)
Operatore di assegnamento logico ORusato tra due valori.
se il primo valore è falso
se la prima valore è null
Esempio di assegnamento logico OR
let x = 10; x ||= 5;
Da settembre 2020, tutti i browser moderni lo supportano ||=
Operatore:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto 2020 | Agosto 2020 | Marzo 2020 | Settembre 2020 | Settembre 2020 |
Operatore di assegnazione fusione di valori vuoti (operatore ??=)
Operatore di assegnazione fusione di valori vuoti(Nullish Coalescing Assignment Operator) tra due valori.
se il primo valore undefined
o null
se la prima valore è null
Esempio di assegnazione fusione di valori vuoti
let x = 10; x ??= 5;
Da settembre 2020, tutti i browser moderni lo supportano ??=
Operatore:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto 2020 | Agosto 2020 | Marzo 2020 | Settembre 2020 | Settembre 2020 |