ECMAScript 2022

Numéro de version JavaScript

Les anciennes versions ECMAScript étaient nommées par des numéros : ES5 et ES6.

Depuis 2016, les versions sont nommées par l'année : ES2016, 2018, 2020, 2022.

Nouvelles fonctionnalités ES2022

Avertissement :

Ces caractéristiques sont relativement nouvelles.

Les navigateurs anciens peuvent nécessiter un code de remplacement (Polyfill).

JavaScript Array at()

ES2022 a introduit la méthode de tableau at()

Exemple 1

Obtenir le troisième élément de l'array fruits :

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

Essayez-le vous-même

Exemple 2

Obtenir le troisième élément de l'array fruits :

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

Essayez-le vous-même

at() Cette méthode retourne l'élément à l'index spécifié dans le tableau.

at() Méthode avec [] Les résultats retournés sont identiques.

Depuis mars 2022, tous les navigateurs modernes supportent at() Méthode :

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Avril 2021 juillet 2021 juillet 2021 mars 2022 août 2021

Attention :

De nombreux langages permettent l'utilisation d'indices négatifs (comme [-1])Accéder à l'élément final d'un objet/tableau/chaîne.

Cela n'est pas possible en JavaScript car [] Utilisée pour accéder aux tableaux et aux objets. obj[-1] fait référence à la valeur de la clé -1, et non à la dernière propriété de l'objet.

at() Cette méthode a été introduite dans ES2022 pour résoudre ce problème.

JavaScript String at()

ES2022 a introduit la méthode de chaîne at()

Exemple 1

Obtenir la troisième lettre de la chaîne de caractères name :

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

Essayez-le vous-même

Exemple 2

Obtenir la troisième lettre de la chaîne de caractères name :

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

Essayez-le vous-même

at() Méthode qui retourne le caractère à l'index spécifié à partir de la chaîne.

at() Méthode avec [] Les résultats retournés sont identiques.

Depuis mars 2022, tous les navigateurs modernes supportent at() Méthode :

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Avril 2021 juillet 2021 juillet 2021 mars 2022 août 2021

modificateur d RegExp

ES2022 a ajouté /d Modificateurs, utilisés pour indiquer le début et la fin de la correspondance.

Exemple

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

Essayez-le vous-même

Les modificateurs RegExp sont utilisés pour spécifier une recherche sans distinction de cas, ainsi que d'autres recherches globales :

Modificateur Description Essayez
g Effectuer une correspondance globale (recherche de tout). Essayez
i Effectuer une correspondance sans distinction de cas. Essayez
d Effectuer une correspondance de sous-chaine (nouveau dans ES2022). Essayez
m Effectuer une correspondance de ligne multiple. Essayez

Object.hasOwn()

ES2022 fournit une méthode sécurisée pour vérifier si une propriété est une propriété自有 de l'objet.

Object.hasOwn() Similaire à Object.prototype.hasOwnPropertyMais il prend en charge tous les types d'objets.

Exemple

Object.hasOwn(myObject, age)

Essayez-le vous-même

Cause de l'erreur

ES2022 permet de spécifier la cause fondamentale de l'erreur via error.cause.

Exemple

connectData(); 
  catch (err) { 
} 
  throw new Error("Échec de la connexion.", { cause: err }); 
}

Essayez-le vous-même

await import JavaScript

Les modules JavaScript peuvent maintenant attendre les ressources à importer avant de s'exécuter :

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

Déclaration de champ de classe JavaScript

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

Depuis avril 2021, toutes les navigateurs modernes supportent les déclarations de champs de classe :

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
janvier 2019 Janvier 2020 septembre 2019 Avril 2021 Janvier 2020

Méthodes et champs privés JavaScript

class Hello {
  #counter = 0;  // Champ privé
  #myMethod() {} // Méthode privée
}
const myClass = new Hello();
let x = myClass.#counter; // Erreur
myClass.#myMethod();      // Erreur

Depuis juin 2021, les méthodes et champs privés sont pris en charge dans tous les navigateurs modernes :

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
Avril 2019 Janvier 2020 Juin 2021 Avril 2021 Juin 2019