Javascript ES2019

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 ES2019
Avertissement
Ces fonctionnalités sont relativement nouvelles.
Les navigateurs plus anciens peuvent avoir besoin d’un code alternatif (Polyfill)
Chaîne JavaScript trimStart()
ES2019 a ajouté la méthode String trimStart()
à JavaScript.
Le trimStart()
la méthode fonctionne comme trim()
mais supprime les espaces uniquement à partir du début d’une chaîne.
Exemple
let text1 = ” Bonjour le monde ! ” ;
laissez text2 = text1.trimStart();
Chaîne JavaScript trimStart()
est pris en charge dans tous les navigateurs modernes depuis janvier 2020 :
Chrome 66 | Bord 79 | Firefox 61 | Safari 12 | Opéra 50 |
Avr 2018 | janvier 2020 | juin 2018 | Septembre 2018 | Mai 2018 |
Chaîne JavaScript trimEnd()
ES2019 a ajouté la méthode String trimEnd()
à JavaScript.
Le trimEnd()
la méthode fonctionne comme trim()
mais supprime les espaces uniquement à la fin d’une chaîne.
Chaîne JavaScript trimEnd()
est pris en charge dans tous les navigateurs modernes depuis janvier 2020 :
Chrome 66 | Bord 79 | Firefox 61 | Safari 12 | Opéra 50 |
Avr 2018 | janvier 2020 | juin 2018 | Septembre 2018 | Mai 2018 |
Objet JavaScript fromEntries()
ES2019 a ajouté la méthode Object fromEntries()
à JavaScript.
Le fromEntries()
La méthode crée un objet à partir de paires clé/valeur itérables.
Exemple
const fruits = [
[“apples”, 300],
[“pears”, 900],
[“bananas”, 500]
];
const myObj = Object.fromEntries(fruits);
Objet JavaScript fromEntries()
est pris en charge dans tous les navigateurs modernes depuis janvier 2020 :
Chrome 73 | Bord 79 | Firefox 63 | Safari 12.1 | Opéra 60 |
mars 2019 | janvier 2020 | octobre 2018 | mars 2019 | Avr 2019 |
Attache optionnelle
Depuis ES2019, vous pouvez omettre le paramètre catch si vous n’en avez pas besoin :.
Exemple
Avant 2019 :
essayer {
// code
} attraper (erreur) {
// code
}
Après 2019 :
essayer {
// code
} attraper {
// code
}
La liaison catch facultative est prise en charge dans tous les navigateurs modernes depuis janvier 2020 :
Chrome 66 | Bord 79 | Firefox 58 | Safari 11.1 | Opéra 53 |
Avr 2018 | janvier 2020 | janvier 2018 | mars 2018 | Mai 2018 |
Tableau JavaScript plat()
ES2019 a ajouté le tableau flat()
méthode à JavaScript.
Le flat()
La méthode crée un nouveau tableau en aplatissant un tableau imbriqué.
Tableau JavaScript flat()
est pris en charge dans tous les navigateurs modernes depuis janvier 2020 :
Chrome 69 | Bord 79 | Firefox 62 | Safari 12 | Opéra 56 |
Septembre 2018 | janvier 2020 | Septembre 2018 | Septembre 2018 | Septembre 2018 |
Tableau JavaScript flatMap()
ES2019 a ajouté le tableau flatMap()
méthode à JavaScript.
Le flatMap()
La méthode mappe d’abord tous les éléments d’un tableau, puis crée un nouveau tableau en aplatissant le tableau.
Exemple
const maArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap((x) => x * 2);
Tri de tableau stable()
ES2019 modifié le tableau sort()
méthode.
Avant 2019, la spécification autorisait des algorithmes de tri instables tels que QuickSort.
Après ES2019, les navigateurs doivent utiliser un algorithme de tri stable :
Lors du tri des éléments sur une valeur, les éléments doivent conserver leur position relative par rapport aux autres éléments ayant la même valeur.
Exemple
const maArr = [
{name:”X00″,price:100 },
{name:”X01″,price:100 },
{name:”X02″,price:100 },
{name:”X03″,price:100 },
{name:”X04″,price:110 },
{name:”X05″,price:110 },
{name:”X06″,price:110 },
{name:”X07″,price:110 }
];
Dans l’exemple ci-dessus, lors du tri sur le prix, le résultat n’est pas autorisé à sortir avec les noms dans une autre position relative comme ceci :
X01 100
X03 100
X00 100
X03 100
X05 110
X04 110
X06 110
X07 110
JSON.stringify() révisé
ES2019 modifié le JSON stringify()
méthode.
Avant 2019, JSON ne pouvait pas chaîner les caractères encodés avec .
Avant ES2019, en utilisant JSON.stringify()
JSON sur les points de code UTF-8 (U+D800 à U+DFFF) renvoyait des caractères Unicode brisés comme ���.
Après cette révision, les chaînes avec des points de code UTF-8 sont converties en toute sécurité avec JSON.stringify()
et revenir à l’original en utilisant JSON.parse()
.
Symboles séparateurs
Les séparateurs de ligne et les symboles de séparateur de paragraphe (u2028 et u2029) sont désormais autorisés dans les littéraux de chaîne.
Avant 2019, ceux-ci étaient traités comme des terminaisons de ligne et entraînaient des exceptions d’erreur :
Note
Maintenant, JavaScript et JSON ont des règles égales.
Avant ES2019 :
text = JSON.parse(‘”u2028″‘) analyserait en ”.
text=””u2028″” donnerait erreur de syntaxe.
Fonction toString() révisée
ES2019 modifié la fonction toString()
méthode.
Le toString()
La méthode renvoie une chaîne représentant le code source d’une fonction.
À partir de 2019, toString() doit renvoyer le code source de la fonction, y compris les commentaires, les espaces et les détails de syntaxe.
Avant 2019, différents navigateurs renvoyaient différentes variantes de la fonction (comme sans commentaires ni espaces). À partir de 2019, la fonction doit être renvoyée exactement telle qu’elle est écrite.
#Javascript #ES2019