12 fonctionnalités ES10 dans 12 exemples simples

Voici une traduction d'un article du blog de Carlos Caballero sur Medium.com. L'auteur nous parlera des fonctionnalités apparues dans la version 2019 ES10.



ES10 est la dernière version d' ECMAScript pour 2019. Il ne contient pas autant d'innovations que la version ES6 sortie en 2015, mais il comprenait plusieurs fonctionnalités utiles.

Dans cet article, les fonctionnalités introduites dans ES10 sont décrites comme de simples exemples de code. Vous pouvez les comprendre rapidement sans explication détaillée. Bien sûr, cela nécessitera une connaissance de base de JavaScript.

Les nouvelles fonctionnalités JavaScript d'ES2019 sont:

  • Array#{flat,flatMap}
  • Object.fromEntries
  • String#{trimStart,trimEnd}
  • Symbol#description
  • liaison facultative, try { } catch {} //
  • JSON ⊂ ECMAScript
  • JSON.stringify bien formé
  • Array#sort stable Array#sort
  • fonction mise à jour toString
  • BigInt - Type simple (étape 3)
  • importation dynamique (étape 3)
  • standardisé global This objet (étape 3).

Array.flat () et Array.flatMap ()


Il existe deux nouvelles méthodes Array :

  • La méthode Array.flat() renvoie un nouveau tableau dans lequel tous les éléments des sous-réseaux imbriqués ont été récursivement élevés au niveau de profondeur spécifié.
  • La méthode Array.flatMap() applique d'abord une fonction à chaque élément, puis convertit le résultat en une structure plate et le place dans un nouveau tableau. Elle est identique à la fonction map() , suivie de l'utilisation de la fonction flat() avec un paramètre de profondeur de 1, mais flatMap() est plus souvent plus efficace, car elle combine les deux approches dans une même méthode.



Object.fromEntries ()


Convertit une liste de codes et des paires de valeurs en un objet.



String.prototype.matchAll


Lors de la mise en correspondance d'une chaîne avec une expression régulière, la méthode matchAll() renvoie un itérateur sur tous les résultats, y compris les groupes de capture.



String.trimStart () et String.trimEnd ()


Il existe deux nouvelles méthodes String pour supprimer des espaces d'une chaîne:

  • La méthode trimStart() supprime l'espace au début d'une ligne.
  • La méthode trimEnd() supprime l'espace à la fin d'une ligne.



Symbole Description


Ajout d'une nouvelle option pour obtenir la description du Symbol . Maintenant, lors de la création de Symbol , vous pouvez ajouter une ligne comme description - ES10 a accès à cet indicateur.



Liaison try/catch optionnelle


Auparavant, l'expression catch de la construction try/catch avait besoin d'une variable. Aujourd'hui, les développeurs peuvent utiliser try/catch sans créer de liaisons inutiles.



JSON ⊂ ECMAScript


Les caractères du séparateur de ligne non échappé U+2028 et du séparateur de paragraphe U+2029 n'étaient pas présents dans les versions précédentes d'ECMAScript.

  • U + 2028 - séparateur de paragraphe.
  • U + 2029 - séparateur de ligne.



JSON.stringify () bien formé


JSON.stringify() peut renvoyer des caractères entre U+D800 et U+DFFF tant que valeurs pour lesquelles il n'y a pas d'équivalent de caractère UTF-8. Cependant, le format JSON nécessite un encodage UTF-8. Une solution a été proposée pour présenter les points de code de substitution non appariés sous forme de séquences blindées JSON au lieu de les laisser comme unités de code UTF-16 uniques.



Stable Array.prototype.sort ()


Dans l'implémentation précédente du moteur V8, un algorithme de tri rapide instable était utilisé pour les tableaux contenant plus de 10 éléments.

L' algorithme de tri stable est un algorithme de tri dans lequel deux objets avec les mêmes clés restent dans le même ordre dans lequel ils étaient avant le tri.



Function.toString () mis à jour


La toString() renvoie une représentation sous forme de chaîne du code source de la fonction. Dans ES6, lors de l'appel à toString() pour une fonction, il pouvait retourner un résultat différent selon l'implémentation spécifique du moteur ECMAScript. Si possible, le code source a été retourné, sinon un talon standardisé.



BigInt - entiers de longueur arbitraire


BigInt est le 7ème type primitif, un entier de longueur arbitraire. Les variables de ce type peuvent comprendre 253 caractères numériques; elles ne sont pas limitées à une valeur numérique 9007199254740992 .



Importation dynamique


L' import() dynamique import() renvoie une promesse pour l'objet d'espace de noms du module demandé. Par conséquent, l'importation peut désormais être affectée à une variable à l'aide de async/await .



Global standardisé Cet objet


globalThis objet globalThis pas globalThis standardisé avant l'avènement de l'ES10. Dans le code de l'application finie, elle devait être amenée à la norme pour diverses plates-formes par elle-même, en écrivant quelque chose de lourd, par exemple:



Conclusion


JavaScript est un langage vivant, très favorable à la programmation web. Nous assistons à son développement dynamique depuis l'avènement d'ES6 en 2015. Dans cet article, nous avons mis en évidence les fonctionnalités apparues dans la version 2019 ES10. Certaines fonctionnalités ont également été introduites qui gagneront en stabilité dans ES11 (2020), car elles sont en 3 étapes de mise en œuvre et devraient être normalisées à la fin pour la prochaine version.
La plupart de ces fonctionnalités peuvent ne pas être nécessaires pour créer votre application Web. Cependant, ils permettent tous de se passer de trucs ingénieux ou d'écrire beaucoup de code là où c'était nécessaire auparavant.

Source: https://habr.com/ru/post/fr471142/


All Articles