ECMAScript 2017
Le convenzioni di nomi JavaScript per le classi sono iniziati con ES1, ES2, ES3, ES5 e ES6.
Ma ECMAScript 2016 e 2017 non sono chiamati ES7 e ES8.
Dalla versione 2016, le nuove versioni sono denominate per anno (ECMAScript 2016/2017/2018).
Nuove funzionalità di ECMAScript 2017
Questo capitolo introduce le nuove funzionalità di ECMAScript 2017:
- Riempimento delle stringhe JavaScript
- Object.entries JavaScript
- Object.values JavaScript
- Funzioni asincrone JavaScript
- Memoria condivisa JavaScript
Riempimento delle stringhe JavaScript
ECMAScript 2017 ha aggiunto due nuovi metodi String:padStart
e padEnd
per supportare il riempimento all'inizio e alla fine della stringa.
istanza
let str = "5"; str = str.padStart(4,0); // Il risultato è: 0005
istanza
let str = "5"; str = str.padEnd(4,0); // Il risultato è: 5000
Internet Explorer non supporta la stringa di riempimento.
Firefox e Safari sono stati i primi browser a supportare la stringa di riempimento JavaScript:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Marzo 2017 | Aprile 2017 | agosto 2016 | settembre 2016 | Marzo 2017 |
entrate degli oggetti JavaScript
ECMAScript 2017 ha aggiunto nuovi Object.entries
metodo.
Object.entries() metodo restituisce un array di coppie chiave/valore dell'oggetto:
istanza
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.entries(person);
Object.entries() rende più semplice il ciclo utilizzando un oggetto:
istanza
const fruits = {Bananas:300, Oranges:200, Apples:500}; let text = ""; for (let [fruit, value] of Object.entries(fruits)) { text += fruit + ": " + value + " "; }
Object.entries() rende semplice convertire un oggetto in una mappa:
istanza
const fruits = {Bananas:300, Oranges:200, Apples:500}; const myMap = new Map(Object.entries(fruits));
Chrome e Firefox sono stati i primi a supportare Object.entries
dei browser:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
giugno 2016 | agosto 2016 | giugno 2016 | Marzo 2017 | Ottobre 2016 |
valori degli oggetti JavaScript
Object.values
simile Object.entries
ma restituisce un array unidimensionale di valori dell'oggetto:
istanza
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.values(person);
Firefox e Chrome sono stati i primi a supportare Object.values
dei browser:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Ottobre 2016 | agosto 2016 | giugno 2016 | Marzo 2017 | Ottobre 2016 |
Funzioni Async JavaScript
Timeout in attesa
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 i primi browser a supportare le funzioni JavaScript asincrone:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Ottobre 2016 | Aprile 2017 | Marzo 2017 | Settembre 2017 | Ottobre 2016 |