ECMAScript 2025 : les nouveautés JavaScript à connaître

11 juillet 2025 3 min
ECMAScript évolue, et avec la version 2025, JavaScript gagne en puissance et en expressivité. Import de fichiers JSON, opérations sur les ensembles, itérateurs plus intelligents, expressions régulières améliorées… Voici un résumé clair et pratique des nouvelles fonctionnalités à connaître pour rester à jour.

Chaque année, la norme ECMAScript évolue pour enrichir l’écosystème JavaScript. Cette année ne fait pas exception : ECMAScript 2025, officiellement approuvée en juin par Ecma International, apporte son lot de nouveautés attendues. Entre nouvelles méthodes pour les itérateurs, meilleure gestion des modules non-JS, extensions des expressions régulières et prise en charge du float16, le langage poursuit sa modernisation sans renier sa simplicité.

Voici un tour d’horizon des principales fonctionnalités à retenir.

Import de modules JSON (avec les import attributes)

Bonne nouvelle pour ceux qui jonglent avec des fichiers de configuration ou de contenu : JavaScript prend désormais en charge les fichiers JSON comme modules grâce aux import attributes. Cette fonctionnalité introduit la possibilité d’importer explicitement un module JSON via la syntaxe suivante :

import config from './config.json' with { type: 'json' };

Et en dynamique :

const config = await import('./config.json', { with: { type: 'json' } });

Cela évite les bricolages ou transformations manuelles. Le type est spécifié via l’attribut with, rendant l’import plus explicite et sécurisé.

Des méthodes utilitaires pour les itérateurs

Une nouvelle classe Iterator est introduite pour faciliter les traitements en flux de données. On retrouve des méthodes similaires à celles de Array.prototype, mais pensées pour les itérateurs :

  • Transformations : iterator.map(), iterator.filter(), iterator.flatMap()
  • Tests : iterator.some(), iterator.every()
  • Manipulations : iterator.take(n), iterator.drop(n), iterator.toArray()

Ces méthodes permettent un travail plus fluide sur des flux de données continus ou potentiellement infinis, sans avoir à tout convertir en tableau.

De nouvelles méthodes pour les Set

Longtemps cantonnés à quelques opérations de base, les ensembles (Set) deviennent plus puissants grâce à l’introduction d’opérations ensemblistes inspirées des mathématiques :

  • Opérations sur les ensembles : union(), intersection(), difference(), symmetricDifference()
  • Tests de relation : isSubsetOf(), isSupersetOf(), isDisjointFrom()

Exemple :

setA.union(setB); // Retourne un nouvel ensemble combiné

Un vrai gain en lisibilité et en expressivité pour les développeurs.

RegExp.escape()

Échapper une chaîne pour l’utiliser dans une expression régulière est désormais simplifié grâce à :

RegExp.escape('(*)'); // Retourne '\\\\(\\\\*\\\\)'

Fini les fonctions utilitaires maison pour cette tâche pourtant courante !

Modificateurs ciblés dans les RegExp

Avant, les modificateurs comme i (insensible à la casse) ou m (multiligne) s’appliquaient à l’expression entière. ECMAScript 2025 permet désormais de les appliquer localement dans une portion :

/(?i:foo)/  // Rend 'foo' insensible à la casse uniquement

Cela permet de construire des motifs plus précis, sans devoir les découper.

Groupes de capture nommés dupliqués

Jusqu’ici, un nom de groupe de capture devait être unique dans une expression régulière. Ce n’est plus le cas lorsqu’ils sont dans des branches alternatives :

/^((?<x>a)|(?<x>b))$/.exec('a').groups;
// Résultat : { x: 'a' }

Cela simplifie les constructions dynamiques ou réutilisables de RegExp.

Promise.try()

Plutôt que d’écrire :

try {
  const result = await doStuff();
} catch (e) {
  handleError(e);
}

On peut désormais encapsuler un appel dans un bloc Promise.try() :

Promise.try(() => doStuff())
  .then(handleSuccess)
  .catch(handleError);

Utile notamment pour unifier les traitements synchrones et asynchrones dans des chaînes de promesses.

Support natif des float16

ECMAScript 2025 introduit le support des nombres à virgule flottante 16 bits, idéaux pour les applications nécessitant de la performance mémoire comme le traitement d’image ou le machine learning :

  • Math.f16round() : conversion vers float16
  • Float16Array : tableau typé dédié
  • DataView.getFloat16() et setFloat16() : lecture/écriture bas niveau

Un ajout technique, mais prometteur pour des usages spécialisés.

En résumé

Merci de votre lecture 😎

Ecrit par
Alyson Paya

Partager l'article :

Vous avez un projet ?

Un site vitrine ? e-commerce ? une application ?

Contactez-nous

Découvrez les derniers articles

Tout voir