ECMAScript 2022

Versione di JavaScript

Le vecchie versioni di ECMAScript sono denominate con numeri: ES5 e ES6.

Dalla versione 2016, le versioni sono denominate con l'anno: ES2016, 2018, 2020, 2022.

Nuove caratteristiche di ES2022

Avviso:

Queste caratteristiche sono relativamente nuove.

I browser di versione vecchia potrebbero richiedere codice di sostituzione (Polyfill).

JavaScript Array at()

ES2022 ha introdotto il metodo dell'array at():

Esempio 1

Estrai il terzo elemento dell'array fruits:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);

Prova tu stesso

Esempio 2

Estrai il terzo elemento dell'array fruits:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];

Prova tu stesso

at() Il metodo restituisce l'elemento specifico dell'array.

at() Metodo [] i risultati restituiti sono gli stessi.

A partire dal marzo 2022, tutte le moderne browser supportano at() Metodo:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Aprile 2021 Luglio 2021 Luglio 2021 Marzo 2022 Agosto 2021

Attenzione:

Molte lingue permettono l'uso di indici negativi (come [-1]) Accedi all'elemento finale dell'oggetto/arrays/stringa.

Questo non è possibile in JavaScript perché [] Utilizzato per accedere agli array e agli oggetti. obj[-1] si riferisce al valore della chiave -1, non all'ultima proprietà dell'oggetto.

at() Il metodo è stato introdotto in ES2022 per risolvere questo problema.

JavaScript String at()

ES2022 ha introdotto il metodo della stringa at():

Esempio 1

Estrai la terza lettera della stringa name:

const name = "W3Schools";
let letter = name.at(2);

Prova tu stesso

Esempio 2

Estrai la terza lettera della stringa name:

const name = "W3Schools";
let letter = name[2];

Prova tu stesso

at() Il metodo restituisce il carattere specificato dall'indice dalla stringa.

at() Metodo [] i risultati restituiti sono gli stessi.

A partire dal marzo 2022, tutte le moderne browser supportano at() Metodo:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Aprile 2021 Luglio 2021 Luglio 2021 Marzo 2022 Agosto 2021

modificatore d RegExp

ES2022 ha aggiunto /d Modificatori, utilizzati per rappresentare l'inizio e la fine della corrispondenza.

try {

let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);

Prova tu stesso

I modificatori RegExp vengono utilizzati per specificare la distinzione tra maiuscole e minuscole e altre ricerche globali:

Modificatore Descrizione Prova tu stesso
g Esegui la corrispondenza globale (trova tutto). Prova tu stesso
i Esegui la corrispondenza senza distinzione tra maiuscole e minuscole. Prova tu stesso
d Esegui la corrispondenza di sottostringa (aggiunto in ES2022). Prova tu stesso
m Esegui la corrispondenza multi-linea. Prova tu stesso

Object.hasOwn()

ES2022 fornisce un metodo sicuro per verificare se un attributo è una proprietà自有 dell'oggetto.

Object.hasOwn() simile a Object.prototype.hasOwnPropertyma supporta tutti i tipi di oggetti.

try {

Object.hasOwn(myObject, age)

Prova tu stesso

Causa dell'errore

Esempio

try {

connectData(); 
  catch (err) { 
} 
  throw new Error("Connecting failed.", { cause: err }); 
}

Prova tu stesso

await import JavaScript

I moduli JavaScript possono ora aspettare i risorse necessari prima di essere eseguiti:

import {myData} from './myData.js';
const data = await myData();

Dichiarazione di campo di classe JavaScript

class Hello {
  counter = 0; // campo di classe
}
const myClass = new Hello();
let x = myClass.counter;

A partire dal aprile 2021, tutte le moderne browser supportano la dichiarazione di campi di classe:

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
Gennaio 2019 Gennaio 2020 Settembre 2019 Aprile 2021 Gennaio 2020

Metodi e campi privati JavaScript

class Hello {
  #counter = 0;  // Campo privato
  #myMethod() {} // Metodo privato
}
const myClass = new Hello();
let x = myClass.#counter; // Errore
myClass.#myMethod();      // Errore

A partire dal giugno 2021, i metodi e i campi privati sono supportati in tutti i browser moderni:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
Aprile 2019 Gennaio 2020 Giugno 2021 Aprile 2021 Giugno 2019