ECMAScript

Le standard sur lequel repose le langage de programmation JavaScript, appelé ECMAScript, porte l’abréviation ES.

L’association ECMA pour la standardisation de l’information et de la communication des systèmes (European association for standardizing information and communication systems) qui siège en Suisse, met à jour chaque année la normalisation et les standards de JavaScript.

L’ES6 a profondément modifié l’approche de JavaScript autrefois limitée au navigateur client et à l’interactivité. 

Depuis 2015, JavaScript est utilisé à la fois en front-end et en back-end, ce qui permet de créer des applications complètes, adaptées aux applications mobiles et applications multiplateformes.

On se réfère encore à l’ES6 pour parler de la nouvelle version de JavaScript.

JavaScript est devenu ECMAScript.

Version Année Fonctionnalités notables
ES6 (mise à jour majeure) 2015 let/const, arrow functions =>, classes, modules import/export, template literals, destructuring, Promises, paramètres par défaut, rest/spread
ES7 2016 Array.prototype.includes(), opérateur exponentiel **
ES8 2017 async/await, Object.values(), Object.entries(), String.padStart()/padEnd()
ES9 2018 Spread/rest pour objets {…obj}, Promise.allSettled(), améliorations expressions régulières
ES10 2019 Array.flat(), Array.flatMap(), Object.fromEntries(), try/catch optionnel, String.trimStart()/trimEnd()
ES11 2020 Optional chaining ?., Nullish coalescing ??, BigInt, import() dynamique, Promise.allSettled(), globalThis
ES12 2021 String.replaceAll(), séparateurs numériques 1_000_000, Promise.any(), opérateurs d’assignation logique &&=, `
ES2022 2022 .at() pour tableaux/chaînes, Object.hasOwn(), classes : champs privés #maProp, top-level await
ES2023 2023 Array.findLast(), Array.findLastIndex(), syntaxe de blocs dans if/else, hashbang #!/usr/bin/env node
ES2024 2024 Object.groupBy(), Map.groupBy(), améliorations expressions régulières, ArrayBuffer transfer
ES2025 2025 Iterator helpers (map, filter, take…), méthodes Set (union, intersection…), Promise.try(), RegExp.escape(), Float16Array, Import Attributes

Les fonctionnalités ES6+ les plus utilisées quotidiennement en React sont :

// Arrow functions (ES6)
const MonComposant = () => { ... }

// Destructuring (ES6)
const { nom, age } = props;

// Spread operator (ES9)
const nouveauState = { ...state, nom: "Nouveau" };

// Optional chaining (ES11) - très utile pour les données API
const ville = user?.adresse?.ville;

// Nullish coalescing (ES11) - pour les valeurs par défaut
const nomAffiche = utilisateur?.nom ?? "Invité";

// Async/await (ES8) - pour les appels API
useEffect(() => {
  const fetchData = async () => {
    const res = await fetch('/api/data');
    const data = await res.json();
  };
  fetchData();
}, []);
Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.