L’ECMAScript 2017 a apporté de nouvelles caractéristiques portant sur différents concepts des scripts et de JavaScript en particulier. Il convient de noter que nous avons six nouvelles caractéristiques majeures que nous allons passer en revue.
Les fonctions asynchrones
La combinaison des promises (promesses en français) et les générateurs permet de travailler avec un code asynchrone dans ECMAScript et ainsi abandonner les callbacks enchaînés
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | async function myFunction(id) { try { const val1 = await myAsyncFunc1(id); const val2 = await myAsyncFunc2(val1); console.log(`Woho! The output of async call is: ${val2}`); } catch (err) { console.log('Uuuups!', err); } } |
Shared memory and atomics
Pour allouer ou partager de la mémoire entre plusieurs agents :
Code javascript : | Sélectionner tout |
sab = new SharedArrayBuffer(1024); // 1KiB shared memory
Object.values and Object.entries
Les méthodes entries() et values() permettent de retourner un objet de paires attribut/valeur. Ce qui permettrait de se passer d’autres bibliothèques JavaScript comme JQuery par exemple.
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 | const myObject = { name: 'Paweł', age: 29 }; Object.entries(myObject); |
String padding
Une sorte de formatage de chaînes de caractères au sein du script. En utilisant les méthodes padStart() ou padEnd(), on peut ajouter des espaces ou caractères spécifiques, selon les paramètres, au début ou à la fin d’une chaîne de caractères.
Code : | Sélectionner tout |
1 2 3 4 5 | 'machaine'.padStart(20); // " machaine" 'machaine'.padEnd(20, '*'); // "machaine********" |
En lui passant un objet en paramètre, elle retourne un nouvel objet dont les propriétés ont les mêmes clés que les propriétés de l’objet cloné, mais ont pour valeurs les descripteurs de ces propriétés :
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | const obj = { [Symbol('foo')]: 123, get bar() { return 'abc' }, }; console.log(Object.getOwnPropertyDescriptors(obj)); // Output: // { [Symbol('foo')]: // { value: 123, // writable: true, // enumerable: true, // configurable: true }, // bar: // { get: [Function: bar], // set: undefined, // enumerable: true, // configurable: true } } |
Trailing commas
Pour autoriser les virgules avec retour à la ligne dans la liste des paramètres des fonctions et dans les objets littéraux.
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | let obj = { prop1: 'val1', prop2: 'val2', }; function myFunction( param1, param2, ) {} |
Source : ECMAScript
Et vous ?
Que pensez-vous de ses nouvelles mises à jour ?
Voir aussi
ECMAScript 2016 : des mises à jour plus petites et plus fréquentes pour l'ensemble de normes des langages de script