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:

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

Prova personalmente

Esempio di istanza BigInt

let x = 9999999999999999;
let y = 9999999999999999n;

Prova personalmente

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);

Prova personalmente

Il tipo JavaScript di BigInt è "bigint":

Esempio

let x = BigInt(999999999999999);
let type = typeof x;

Prova personalmente

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");

Prova personalmente

Se il parametro è un'espressione regolare, è necessario impostare il flag globale (g) altrimenti viene lanciato un TypeError.

Esempio

const iterator = text.matchAll(/Cats/g);

Prova personalmente

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);

Prova personalmente

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 undefinedquindi ?? L'operatore restituisce il primo parametro.

altrimenti restituisce il secondo.

Esempio

let name = null;
let text = "missing";
let result = name ?? text;

Prova personalmente

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 nullquindiOperatore di catena opzionaleRestituisce undefined(invece di lanciare un errore).

Esempio

const car = {type:"Fiat", model:"500", color:"white"};
let name = car?.name;

Prova personalmente

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 è verose la prima valore è null

Esempio di assegnamento logico AND

let x = 100;
x &&= 5;

Prova personalmente

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 è falsose la prima valore è null

Esempio di assegnamento logico OR

let x = 10;
x ||= 5;

Prova personalmente

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 nullse la prima valore è null

Esempio di assegnazione fusione di valori vuoti

let x = 10;
x ??= 5;

Prova personalmente

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