ECMAScript 2017
La convenzione di denominazione di JavaScript è iniziata con ES1, ES2, ES3, ES5 ed ES6.
Ma ECMAScript 2016 e 2017 non è stato chiamato ES7 ed ES8.
Dal 2016 le nuove versioni sono nominate per anno (ECMAScript 2016 / 2017 / 2018).
Nuove funzionalità in ECMAScript 2017
Questo capitolo introduce le nuove funzionalità di ECMAScript 2017:
- Imbottitura stringa JavaScript
- Oggetti.voci JavaScript
- JavaScript Object.values
- Funzioni asincrone JavaScript
- Memoria condivisa JavaScript
Imbottitura di stringhe JavaScript
ECMAScript 2017 ha aggiunto due metodi String: padStart
e padEnd
per supportare il riempimento all'inizio e alla fine di una stringa.
Esempio
let str = "5";
str = str.padStart(4,0);
// result is 0005
Esempio
let str = "5";
str = str.padEnd(4,0);
// result is 5000
Il riempimento delle stringhe non è supportato in Internet Explorer.
Firefox e Safari sono stati i primi browser con supporto per il riempimento di stringhe JavaScript:
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Mar 2017 | Apr 2017 | Aug 2016 | Sep 2016 | Mar 2017 |
Voci di oggetti JavaScript
ECMAScript 2017 aggiunge un nuovo Object.entries
metodo agli oggetti.
Il metodo Object.entries() restituisce un array delle coppie chiave/valore in un oggetto:
Esempio
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.entries(person);
Object.entries() semplifica l'utilizzo degli oggetti nei loop:
Esempio
const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}
Object.entries() semplifica anche la conversione di oggetti in mappe:
Esempio
const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));
Chrome e Firefox sono stati i primi browser con supporto per
Object.entries
:
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Jun 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
Valori oggetto JavaScript
Object.values
sono simili a Object.entries
, ma restituisce una matrice a dimensione singola dei valori dell'oggetto:
Esempio
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.values(person);
Firefox e Chrome sono stati i primi browser con supporto per
Object.values
:
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Oct 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
Funzioni di sincronizzazione JavaScript
In attesa di un timeout
async function myDisplay() {
let myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("I love You !!"); }, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
Firefox e Chrome sono stati i primi browser con supporto per le funzioni JavaScript asincrone:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec 2016 | Apr 2017 | Mar 2017 | Sep 2017 | Dec 2016 |