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 :

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

Essayez-le vous-même

Instance de BigInt

let x = 9999999999999999;
let y = 9999999999999999n;

Essayez-le vous-même

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

Essayez-le vous-même

Le type JavaScript de BigInt est "bigint" :

Exemple

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

Essayez-le vous-même

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

Essayez-le vous-même

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

Essayez-le vous-même

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

Essayez-le vous-même

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 undefinedalors ?? l'opérateur retourne le premier paramètre.

sinon retourne la deuxième.

Exemple

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

Essayez-le vous-même

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 nullalorsOpé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;

Essayez-le vous-même

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 truesi la première valeur

Exemple d'affectation logique AND

let x = 100;
x &&= 5;

Essayez-le vous-même

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 falsesi la première valeur

Exemple d'affectation logique OR

let x = 10;
x ||= 5;

Essayez-le vous-même

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 nullsi la première valeur

Exemple d'affectation de fusion de valeur manquante

let x = 10;
x ??= 5;

Essayez-le vous-même

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