6 points par GN⁺ 2025-06-30 | 1 commentaires | Partager sur WhatsApp
  • ECMAScript 2025 a été approuvé comme standard officiel le 25 juin 2025, avec l’ajout de diverses nouvelles fonctionnalités
  • Les import attributes et les modules JSON améliorent la manière d’importer des ressources non JavaScript
  • Les iterator helper methods améliorent l’efficacité du traitement de gros volumes de données et de diverses opérations d’itération
  • De nombreuses nouvelles méthodes ont été ajoutées à des objets intégrés majeurs comme Set et RegExp, renforçant leur facilité d’utilisation
  • La prise en charge des nombres à virgule flottante 16 bits (float16) étend les performances et les capacités d’expression pour le traitement des données

Approbation officielle d’ECMAScript 2025

  • Le 25 juin 2025, ECMAScript 2025 a été approuvé comme standard officiel lors de la 129e assemblée générale d’Ecma International

Principales nouvelles fonctionnalités

Import attributes et modules JSON

  • Les import attributes sont une syntaxe permettant de préciser des propriétés comme le type pour des artefacts non JavaScript (ressources cibles de l’import)
  • Les modules JSON sont officiellement pris en charge pour la première fois, permettant de charger simplement des données JSON sous la forme import configData from './data.json' with { type: 'json' };
  • Il est également possible de spécifier les mêmes attributs avec les imports dynamiques (appel import())

Iterator helper methods

  • Diverses méthodes utilitaires, similaires à celles des tableaux mais spécialisées pour les iterators, sont introduites
    • méthodes existantes comme filter, map, flatMap, some, every, find, reduce, forEach
    • ainsi que de nouvelles méthodes propres aux itérateurs comme drop, take, toArray
  • Elles peuvent être utilisées directement avec tous les objets itérables, comme Set et Map
  • Elles sont efficaces pour les gros volumes de données, car elles traitent les données séquentiellement selon les besoins sans créer de tableaux intermédiaires

Extension des méthodes de Set

  • Ajout de méthodes d’opérations d’union, d’intersection, de différence et de différence symétrique (symmetric difference)
    • Set.prototype.union(other), intersection(other), difference(other), symmetricDifference(other)
  • Fourniture de méthodes pour déterminer les sous-ensembles / sur-ensembles / ensembles disjoints
    • isSubsetOf(other), isSupersetOf(other), isDisjointFrom(other)

Améliorations des expressions régulières

RegExp.escape()

  • Introduction de RegExp.escape(), qui échappe automatiquement une chaîne arbitraire afin de pouvoir l’utiliser en toute sécurité dans une expression régulière

Flags inline dans les motifs (Inline flags)

  • Il devient possible d’appliquer des flags individuels (i, u, etc.) uniquement à certaines parties d’une expression régulière
    • Exemple : /^x(?i:HELLO)x$/ ne fait une correspondance insensible à la casse que pour la partie HELLO

Prise en charge des groupes de capture nommés dupliqués

  • Il est possible d’utiliser des groupes de capture portant le même nom selon chaque alternative (branche) d’une expression régulière
    • Exemple : /(?<chars>a+)|(?<chars>b+)/v

Promise.try()

  • Introduction de Promise.try(), qui permet de démarrer le traitement mixte de code synchrone/asynchrone dans une seule chaîne de Promise
    • Auparavant, la gestion des exceptions synchrones était fastidieuse, mais elle devient désormais plus concise

Prise en charge des nombres à virgule flottante 16 bits (float16)

  • Math.f16round() permet d’effectuer un arrondi en virgule flottante 16 bits
  • Ajout du type Float16Array à TypedArray
  • Introduction des méthodes getFloat16() et setFloat16() dans DataView

Ressources de référence et livre gratuit

  • Le livre gratuit en ligne “Exploring JavaScript (ES2025 Edition)” est proposé
    • Il explique en détail l’histoire et l’évolution de JavaScript, ainsi que les nouvelles fonctionnalités d’ECMAScript
    • Il fournit aussi des exemples d’utilisation concrets et des explications pour chaque nouveauté majeure

1 commentaires

 
smboy86 2025-06-30

Dans mon projet précédent, je ne comprenais pas pourquoi le chargement de JSON ne fonctionnait pas.
En fait, ce n’était tout simplement pas pris en charge à l’origine...