Feuille de route ECMAScript: nouvelles fonctionnalités JavaScript pour 2019

ECMAScript 2019, la dernière version de la spécification servant de base à JavaScript, a été finalisée. ECMA International a approuvé la spécification en juin.

Les nouvelles fonctionnalités introduites dans ECMAScript 2019 sont les suivantes:

  • Symbol.prototype.description, une propriété d'accesseur dont la valeur set accessorn'est pas définie. Sa get accessorfonction effectue les étapes suivantes: Soit scette valeur, symsoit ?thisSymbolValue(s), et retourne sym. [[Description]]. Le but de cette fonctionnalité est d'exposer la [[Description]]fente interne d'un symbole directement au lieu de seulement indirectement à travers Symbol.prototype.toString.
  • Modifications de Function.prototype.toString. Des révisions ont été proposées telles que les implémentations n'étant pas obligées de conserver le texte source pour toutes les fonctions définies à l'aide du code ECMAScript.
  • prototype.flatMap, une opération de tableau commune qui prend une structure de tableau imbriquée et supprime un ou plusieurs niveaux d'imbrication en fonction de son paramètre. Flat existe dans des bibliothèques de type tableau comme Lodash, ce qui a conduit les utilisateurs à vouloir la même fonctionnalité dans JavaScript vanilla.
  • prototype.flatmap, une carte suivie d'un plat, offre une légère commodité et une légère optimisation. Flatmap est pratique car l'aplatissement et le mappage sont souvent utiles dans la même opération. C'est aussi une optimisation car il n'est pas nécessaire d'allouer un tableau pour le mappage juste pour le rejeter lors de l'aplatissement.
  • prototype.sort(), une méthode qui trie les éléments d'un tableau en place et renvoie le tableau, est désormais stable.
  • Object.fromEntries, fournissant une nouvelle méthode statique pour transformer une liste de paires valeur / clé en un objet.
  • String.prototype.trimStartet String.prototype.trimEnd. La justification de ces révisions est que tous les principaux moteurs ont implémenté les fonctions correspondantes trimLeftet trimRight sans spécification standard. Par souci de cohérence avec padStart/padEnd, trimStart, trimEnd, trimLeftet trimRightsont proposés comme des alias pour la compatibilité Web.
  • Mises à jour pour JSON.stringifyémettre UTF-16 bien formé (Unicode Transformation Format). Actuellement, des unités de code mal formées peuvent être émises pour des points de code de substitution.
  • catchLiaison facultative , permettant aux développeurs d'omettre une catchliaison lorsque la liaison ne serait pas utilisée.

La spécification ECMAScript 2019 complète peut être consultée en ligne sur le site Web d'ECMA International. Il peut également être téléchargé. Les éditions ECMAScript terminées sont généralement publiées en juin, comme la spécification ECMAScript 2018 de l'année dernière.