
pour les langages de script
Ecma international, le comité international responsable de l'ensemble des normes des langages de script, a annoncé ses nouvelles mises à jour ECMAScript 2017 (ES8). Cette publication s’inscrit dans le cadre de la décision de l’Ecma de sortir des mises à jour plus petites, mais plus fréquentes pour faciliter leur intégration dans les différents navigateurs. Ainsi l’Ecma a publié ECMAScript 2015 en 2015 puis ECMAScript 2016 en 2016.
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 ?

Voir aussi

Vous avez lu gratuitement 3 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.