Illustration de l'article
JavaScript Publié le 15 Mars 2023 1.2K vues

Les nouveautés d'ES2023 : Ce que tout développeur doit savoir

Découvrez les fonctionnalités révolutionnaires de la dernière version d'ECMAScript et comment elles vont changer votre façon de coder en JavaScript au quotidien.

Photo de l'auteur
Jean Codeur
Expert JavaScript · Google Developer Expert
Découvrir l'article

La spécification ECMAScript 2023 (ES2023) apporte plusieurs nouvelles fonctionnalités intéressantes pour JavaScript. Dans cet article, nous allons explorer ces nouveautés et voir comment les utiliser dans vos projets.

1. Recherche par valeur dans les tableaux

ES2023 introduit deux nouvelles méthodes pour les tableaux : findLast() et findLastIndex(). Ces méthodes fonctionnent comme find() et findIndex(), mais parcourent le tableau de la fin vers le début.

const array = [1, 2, 3, 4, 5, 4, 3, 2, 1];

// Trouve le dernier élément pair
const lastEven = array.findLast(x => x % 2 === 0);
console.log(lastEven); // 2

// Trouve l'index du dernier élément pair
const lastEvenIndex = array.findLastIndex(x => x % 2 === 0);
console.log(lastEvenIndex); // 7

2. WeakMap avec Symbol comme clés

ES2023 permet maintenant d'utiliser des Symbol comme clés dans les WeakMap. Cela ouvre de nouvelles possibilités pour le stockage de métadonnées associées à des objets.

const weakMap = new WeakMap();
const key = Symbol('metadataKey');
const obj = {};

weakMap.set(obj, { [key]: 'metadata value' });
console.log(weakMap.get(obj)[key]); // 'metadata value'

3. Amélioration des chaînes de caractères

La méthode String.prototype.replaceAll() est maintenant officiellement standardisée après avoir été disponible dans la plupart des navigateurs depuis un certain temps.

const str = "Hello World. Hello Universe.";
const newStr = str.replaceAll("Hello", "Hi");
console.log(newStr); // "Hi World. Hi Universe."

Commentaires (5)

Jean Dupont 2 jours ago

Merci pour cet article très complet! J'attendais avec impatience ces nouvelles fonctionnalités, surtout le findLast().

Marie Martin 1 semaine ago

Est-ce que ces fonctionnalités sont déjà disponibles dans tous les navigateurs? J'ai essayé avec Safari et ça ne semble pas fonctionner.