JavaScript a été créé par Netscape en 1995. À mesure que son utilisation se répandait, la nécessité d’un standard devenait évidente. Netscape a soumis JavaS cript à Ecma International, ce qui a conduit à la première édition d’ECMAScript en 1997. Le langage est standardisé par le document ECMA-262.
Nous allons vous présenter l’ensemble des changements, avant d’approfondir les principaux changements, notamment l’ES 6.
Les versions d’ECMAScript
Il y a eu de nombreuses versions:
- 1997 : ECMAScript 1 – Fonctionnalités de base (types, objets, boucles).
- 1998 : ECMAScript 2 – Alignement avec la spécification ISO.
- 1999 : ECMAScript 3 – Fonctions
String.split
,Array.join
,try/catch
. - 2003 : Abandon d’ECMAScript 4 en raison de désaccords
- 2009 : ECMAScript 5 –
Object.create
, mode strict,Array.map
. - 2011 : ECMAScript 5.1 – Alignement ISO.
- 2015 : ECMAScript 2015 (ES6) – C’est une mise à jour majeure, avec classes, promesses, modules, fonctions fléchées …
- 2016 : ECMAScript 2016 (ES7) –
Array.includes
, Opérateur**
. - 2017 : ECMAScript 2017 (ES8) –
async/await
,Object.values/entries
. - 2018 : ECMAScript 2018 (ES9) –
Promise.finally
, Décomposition d’objets, Iterateursasync
. - 2019 : ECMAScript 2019 (ES10) –
Array.flat
,Object.fromEntries
,String.trimStart/trimEnd
. - 2020 : ECMAScript 2020 (ES11) –
BigInt
,Optional Chaining
,Nullish Coalescing
. - 2021 : ECMAScript 2021 (ES12) –
Promise.any
,String.replaceAll
, Opérateurs logiques&&=
,||=
,??=
.
Ici nous allons en détailler les plus importantes, dont l’ES 6 (2015), qui a amené de nombreuses améliorations importantes.
L’ECMAScript 6 (ES 6 ou ES 2015)
L’ECMAScript a implémenté plusieurs changements importants dont nous avons parlé extensivement sur ce guide.
Les classes
Avant 2015, pour créer un élément correspondant à ce qu’on appelle habituellement « classes » en POO (Programmation Orientée Objets), on avait en javascript les « prototypes« . Néanmoins, l’écriture, notamment quand il fallait étendre les prototypes, était lourde est assez différente des autres langages. C’est pour résoudre que ce problème que l’ES6 a introduit les classes en javascript.
Les promesses
Avant 2015, on ne pouvait gérer l’asynchronicité qu’avec des callbacks, ce qui rendait le code peu lisible et générait ce qu’on appelle le « callback hell ». Les promesses, introduites par l’ES6, permettent de présenter les successions d’actions de manière très lisible.
La destructuration
La destructuration est une méthode compacte pour cibler les différentes propriétés d’un objet.