ECMAScript 2017

JavaScript naming conventions started with ES1, ES2, ES3, ES5, and ES6.

However, ECMAScript 2016 and 2017 were not called ES7 and ES8.

Since 2016, new versions have been named by year (ECMAScript 2016/2017/2018).

New features in ECMAScript 2017

This chapter introduces the new features of ECMAScript 2017:

  • JavaScript string padding
  • JavaScript Object.entries
  • JavaScript Object.values
  • JavaScript asynchronous functions
  • JavaScript shared memory

JavaScript string padding

ECMAScript 2017 added two String methods:padStart and padEndto support padding at the beginning and end of strings.

exempel

let str = "5";
str = str.padStart(4,0);
// Result is: 0005

Try it yourself

exempel

let str = "5";
str = str.padEnd(4,0);
// Resultatet är: 5000

Try it yourself

Internet Explorer stöder inte strängfyllning.

Firefox och Safari var de första som stödde JavaScript strängfyllning:

Chrome IE Firefox Safari Opera
Chrome 57 Edge 15 Firefox 48 Safari 10 Opera 44
March 2017 April 2017 2016 åren 8 augusti 2016 åren 9 september March 2017

JavaScript objekt poster

ECMAScript 2017 lade till nya Object.entries metod.

Object.entries() metoden returnerar en array av nyckel/värde par från objektet:

exempel

const person = {
  firstName : ":Bill",
  lastName : ":Gates",
  age : 50,
  eyeColor : ":blå"
};
document.getElementById("demo").innerHTML = Object.entries(person);

Try it yourself

Object.entries() gör det enkelt att använda objekt i en loop:

exempel

const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}

Try it yourself

Object.entries() gör det enkelt att konvertera objekt till en karta:

exempel

const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));

Try it yourself

Chrome och Firefox var de första som stödde Object.entries sökmotorer:

Chrome IE Firefox Safari Opera
Chrome 47 Edge 14 Firefox 47 Safari 10.1 Opera 41
2016 åren 6 juni 2016 åren 8 augusti 2016 åren 6 juni March 2017 October 2016

JavaScript objektets värden

Object.values likt Object.entriesmen returnerar en en维 array av objektets värden:

exempel

const person = {
  firstName : ":Bill",
  lastName : ":Gates",
  age : 50,
  eyeColor : ":blå"
};
document.getElementById("demo").innerHTML = Object.values(person);

Try it yourself

Firefox och Chrome var de första som stödde Object.values sökmotorer:

Chrome IE Firefox Safari Opera
Chrome 54 Edge 14 Firefox 47 Safari 10.1 Opera 41
October 2016 2016 åren 8 augusti 2016 åren 6 juni March 2017 October 2016

JavaScript Async Functions

Timeout waiting

async function myDisplay() {
  let myPromise = new Promise(function(myResolve, myReject) {
    setTimeout(function() { myResolve("I love You !!"); }, 3000);
  });
  document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();

Try it yourself

Firefox and Chrome are the first browsers to support asynchronous JavaScript functions:

Chrome IE Firefox Safari Opera
Chrome 55 Edge 15 Firefox 52 Safari 11 Opera 42
December 2016 April 2017 March 2017 September 2017 December 2016