ECMAScript 2017 : Ecma International annonce les nouvelles mises à jour de ses spécifications,
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
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 :
sab = new SharedArrayBuffer(1024); // 1KiB shared memory
L’objet global Atomics propose un certain nombre d’opérations sous forme de méthodes statiques pour servir à plusieurs fins en relation.
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.
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.
1 2 3 4 5
| 'machaine'.padStart(20);
// " machaine"
'machaine'.padEnd(20, '*');
// "machaine********" |
Object.getOwnPropertyDescriptors()
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 :
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.
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
Partager