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();
}, []);