Javascript ECMAScript 2021


Table des matières

    Afficher la table des matières

Numéros de version JavaScript

Les anciennes versions de JS sont nommées par des numéros : ES5 (2009) et ES6 (2015).

A partir de 2016, les versions sont nommées par année : ECMAScript 2016, 2017, 2018, 2019, ...

Nouvelles fonctionnalités dans ES2021

  • Promettez any() :
    const first=wait Promise.any([prom1,prom2,prom3]);

  • Chaîne remplacerTout()

  • Séparateurs numériques (_)


Nouvelles fonctionnalités dans ES2022

  • Tableau à()

  • Chaîne à()

  • ExpReg /d

  • Objet.hasOwn()

  • erreur.cause

  • attendre l'importation

  • Méthodes et champs privés

  • Déclarations de champs de classe

Avertissement

Ces fonctionnalités sont relativement nouvelles.

Les navigateurs plus anciens peuvent avoir besoin d'un code alternatif (Polyfill)


Chaîne JavaScript ReplaceAll()

ES2021 a introduit la méthode de chaîne replaceAll() :

Exemple

text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The replaceAll() Method</h2>

<p>ES2021 intoduced the string method replaceAll().</p>

<p id="demo"></p>

<script>
let text = "I love cats. Cats are very easy to love. Cats are very popular."
text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");

document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

La méthode replaceAll() vous permet de spécifier un expression régulière au lieu d’une chaîne à remplacer.

Si le paramètre est une expression régulière, l'indicateur global (g) doit être défini, sinon une TypeError est levée.

Exemple

text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The replaceAll() Method</h2>

<p>ES2021 intoduced the string method replaceAll().</p>

<p id="demo"></p>

<script>
let text = "I love cats. Cats are very easy to love. Cats are very popular";
text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");

document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Note

ES2020 a introduit la méthode de chaîne matchAll().



Séparateur numérique JavaScript (_)

ES2021 a introduit le séparateur numérique (_) pour rendre les nombres plus lisibles :

Exemple

const num = 1_000_000_000;

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>

<p>ES2021 intoduced the numeric separator (_) to make numbers more readable:</p>
<p id="demo"></p>

<script>
const num = 1_000_000_000;
document.getElementById("demo").innerHTML = num;
</script>

</body>
</html>

Le séparateur numérique est uniquement destiné à un usage visuel.

Exemple

const num1 = 1_000_000_000;
const num2 = 1000000000;
(num1 === num2); 

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>

<p>ES2021 intoduced the numeric separator (_) to make numbers more readable:</p>

<p>Is 1_000_000_000 the same as 1000000000?</p>
<p id="demo"></p>

<script>
const num1 = 1_000_000_000;
const num2 = 1000000000;
document.getElementById("demo").innerHTML = (num1 === num2);
</script>

</body>
</html>

Le séparateur numérique peut être placé n'importe où dans un nombre :

Exemple

const num1 = 1_2_3_4_5;

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>

<p>ES2021 intoduced the numeric separator (_) to make numbers more readable:</p>
<p id="demo"></p>

<script>
const num = 1_2_3_4_5;
document.getElementById("demo").innerHTML = num;
</script>

</body>
</html>

Note

Le séparateur numérique n'est pas autorisé au début ou à la fin d'un nombre.

En JavaScript, seules les variables peuvent commencer par _.

Le séparateur numérique est pris en charge dans tous les navigateurs modernes depuis janvier 2020 :

Chrome 75 Edge 79 Firefox 74 Safari 13.1 Opera 67
Jun 2019 Jan 2020 Oct 2019 Sep 2019 Jun 2019

Tableau JavaScript at()

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

Exemples

Obtenez le troisième élément des fruits :

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

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>The at() Method</h2>

<p>The at() method returns an indexed element from an array:</p>

<p id="demo"></p>

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

document.getElementById("demo").innerHTML = fruit;
</script>

</body>
</html>

Obtenez le troisième élément des fruits :

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

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>Bracket Notation</h2>

<p>The bracked notation [] returns an indexed element from an array:</p>

<p id="demo"></p>

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

document.getElementById("demo").innerHTML = fruit;
</script>

</body>
</html>

La méthode at() renvoie un élément indexé d'un tableau.

La méthode at() renvoie la même chose que [].

La méthode at() est prise en charge dans tous les navigateurs modernes depuis mars 2022 :

Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Apr 2021 Jul 2021 Jul 2021 Mar 2022 Aug 2021

Note

De nombreux langages permettent l'indexation par parenthèses négatives comme [-1] pour accéder aux éléments à partir de la fin d'un objet/tableau/chaîne.

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

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


Chaîne JavaScript at()

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

Exemples

Obtenez la troisième lettre du nom :

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

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Strings</h1>
<h2>The at() Method</h2>

<p>The at() method returns an indexed element from a string:</p>

<p id="demo"></p>

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

document.getElementById("demo").innerHTML = letter;
</script>

</body>
</html>

Obtenez la troisième lettre du nom :

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

Essayez-le vous-même →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Strings</h1>
<h2>Bracket Notation</h2>

<p>The bracked notation [] returns an indexed element from a string:</p>

<p id="demo"></p>

<script>
const name = "W3Schools";
let letter = name[2];

document.getElementById("demo").innerHTML = letter;
</script>

</body>
</html>

La méthode at() renvoie un élément indexé à partir d'une chaîne.

La méthode at() renvoie la même chose que [].

La méthode at() est prise en charge dans tous les navigateurs modernes depuis mars 2022 :

Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Apr 2021 Jul 2021 Jul 2021 Mar 2022 Aug 2021