ECMAScript 2018
La convention de dénomination JavaScript a commencé par ES1, ES2, ES3, ES5 et ES6.
Mais ECMAScript 2016 et 2017 ne s'appelaient pas ES7 et ES8.
Depuis 2016 les nouvelles versions sont nommées par année (ECMAScript 2016 / 2017 / 2018).
Nouvelles fonctionnalités dans ECMAScript 2018
Ce chapitre présente les nouvelles fonctionnalités d'ECMAScript 2018 :
Itération asynchrone JavaScript
ECMAScript 2018 a ajouté des itérateurs et des itérables asynchrones.
Avec les itérables asynchrones, nous pouvons utiliser le await
mot clé dans des for/of
boucles.
Exemple
for await () {}
Firefox et Safari ont été les premiers navigateurs prenant en charge l'itération asynchrone JavaScript :
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
Promesse JavaScript. enfin
ECMAScript 2018 finalise l'implémentation complète de l'objet Promise avec Promise.finally
:
Exemple
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Chrome et Firefox ont été les premiers navigateurs prenant en charge Promise.finally
:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
Propriétés de reste d'objet JavaScript
ECMAScript 2018 a ajouté des propriétés de repos.
Cela nous permet de détruire un objet et de collecter les restes sur un nouvel objet :
Exemple
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Chrome, Firefox et Opera ont été les premiers navigateurs à prendre en charge les propriétés de repos d'objet :
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
Nouvelles fonctionnalités JavaScript RegExp
ECMAScript 2018 a ajouté 4 nouvelles fonctionnalités RegExp :
- Échappements de propriété Unicode (\p{...})
- Lookbehind Assertions (?<= ) et (?<! )
- Groupes de capture nommés
- Indicateur s (pointTout)
Chrome et Firefox ont été les premiers navigateurs prenant en charge toutes les nouvelles fonctionnalités de RegExp :
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |