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 padEndper supportare il riempimento all'inizio e alla fine della stringa.

istanza

let str = "5";
str = str.padStart(4,0);
// Il risultato è: 0005

Prova tu stesso

istanza

let str = "5";
str = str.padEnd(4,0);
// Il risultato è: 5000

Prova tu stesso

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);

Prova tu stesso

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 + "
";
}

Prova tu stesso

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));

Prova tu stesso

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.entriesma 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);

Prova tu stesso

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();

Prova tu stesso

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