ECMAScript 2020
Numéro de version JavaScript
Les anciennes versions de JS sont nommées par numéros : ES5 (2009) et ES6 (2015).
Depuis 2016, les versions sont nommées par année : ECMAScript 2016, 2017, 2018, 2019, ...
Nouvelles fonctionnalités dans ES2020 :
- BigInt
- Méthode de chaîne matchAll()
- Opérateur de fusion de valeur nulle (??)
- Opérateur de chaîne optionnelle (?.)
- Opérateur d'affectation logique AND (&&=)
- Opérateur d'affectation logique OR (||=)
- Opérateur d'affectation de fusion de valeur nulle (??=)
- Promise.allSettled()
- Importation dynamique
Avertissement
Ces caractéristiques sont relativement nouvelles.
Les navigateurs plus anciens peuvent nécessiter du code de remplacement (Polyfill).
BigInt JavaScript
Les variables BigInt JavaScript sont utilisées pour stocker des valeurs d'entiers trop grandes pour être représentées par des nombres JavaScript normaux.
Les entiers JavaScript peuvent seulement être précis jusqu'à 15 chiffres.
Instance d'entier
let x = 999999999999999; let y = 9999999999999999; // Trop grand
Instance de BigInt
let x = 9999999999999999; let y = 9999999999999999n;
Pour créer un BigInt, veuillez utiliser n
Ajouter à la fin d'un entier ou appeler BigInt() :
Exemple
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
Le type JavaScript de BigInt est "bigint" :
Exemple
let x = BigInt(999999999999999); let type = typeof x;
Depuis septembre 2020, tous les navigateurs modernes prennent en charge BigInt :
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
mai 2018 | janvier 2020 | juillet 2019 | Septembre 2020 | juin 2018 |
Méthode matchAll() de la chaîne JavaScript
Avant ES2020, il n'y avait pas de méthode de chaîne disponible pour rechercher toutes les occurrences d'une chaîne dans une chaîne.
Exemple
const iterator = text.matchAll("Cats");
Si le paramètre est une expression régulière, vous devez définir le drapeau global (g
) sinon il会产生 TypeError.
Exemple
const iterator = text.matchAll(/Cats/g);
Si vous devez effectuer une recherche sans distinction de cas, vous devez définir le drapeau sans distinction de cas (i
) :
Exemple
const iterator = text.matchAll(/Cats/gi);
Astuce :ES2021 a introduit la méthode de chaîne replaceAll().
Opérateur de fusion de valeurs vides (Nullish Coalescing Operator) (?? opérateur)
si le premier paramètre n'est pas une valeur vide (null
ou undefined
alors ??
l'opérateur retourne le premier paramètre.
sinon retourne la deuxième.
Exemple
let name = null; let text = "missing"; let result = name ?? text;
Depuis mars 2020, tous les navigateurs modernes supportent l'opérateur nullish :
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
février 2020 | février 2020 | janvier 2020 | Mars 2020 | Mars 2020 |
Opérateur de chaîne optionnelle (Optional Chaining Operator) (?. opérateur)
si l'objet est undefined
ou null
alorsOpérateur de chaîne optionnelleretourne undefined
(au lieu de lever une erreur).
Exemple
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Depuis mars 2020, tous les navigateurs modernes le supportent ?.=
Opérateur :
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
février 2020 | février 2020 | Mars 2020 | Mars 2020 | Mars 2020 |
Opérateur d'affectation AND logique (&&= opérateur)
Opérateur d'affectation logique ANDutilisé entre deux valeurs.
si la première valeur est true
si la première valeur
Exemple d'affectation logique AND
let x = 100; x &&= 5;
Tous les navigateurs modernes depuis septembre 2020 le supportent &&=
Opérateur :
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Août 2020 | Août 2020 | Mars 2020 | Septembre 2020 | Septembre 2020 |
Opérateur d'affectation logique OR (||= opérateur)
Opérateur d'affectation logique ORutilisé entre deux valeurs.
si la première valeur est false
si la première valeur
Exemple d'affectation logique OR
let x = 10; x ||= 5;
Tous les navigateurs modernes depuis septembre 2020 le supportent ||=
Opérateur :
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Août 2020 | Août 2020 | Mars 2020 | Septembre 2020 | Septembre 2020 |
Opérateur de fusion de valeur manquante (??= opérateur)
Opérateur de fusion de valeur manquanteest utilisé entre deux valeurs.
si la première valeur undefined
ou null
si la première valeur
Exemple d'affectation de fusion de valeur manquante
let x = 10; x ??= 5;
Tous les navigateurs modernes depuis septembre 2020 le supportent ??=
Opérateur :
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Août 2020 | Août 2020 | Mars 2020 | Septembre 2020 | Septembre 2020 |