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
- Array at()
- String at()
- RegExp /d
- Object.hasOwn()
- error.cause
- await import
- Déclaration de champs de classe
- Méthodes et champs privés
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);
Exemple 2
Obtenir le troisième élément de l'array fruits :
const fruits = ["Banana", "Orange", "Apple", "Mango"]; let fruit = fruits[2];
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);
Exemple 2
Obtenir la troisième lettre de la chaîne de caractères name :
const name = "W3Schools"; let letter = name[2];
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);
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.hasOwnProperty
Mais il prend en charge tous les types d'objets.
Exemple
Object.hasOwn(myObject, age)
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 }); }
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 |