ECMAScript 2017

JavaScript navngivningskonventioner begyndte med ES1, ES2, ES3, ES5 og ES6.

Men ECMAScript 2016 og 2017 blev ikke kaldt ES7 og ES8.

Siden 2016 har nye versioner været navngivet efter år (ECMAScript 2016/2017/2018).

Nye funktioner i ECMAScript 2017

Dette kapitel introducerer de nye funktioner i ECMAScript 2017:

  • JavaScript strengfyldning
  • JavaScript Object.entries
  • JavaScript Object.values
  • JavaScript asynkrone funktioner
  • JavaScript fælles hukommelse

JavaScript strengfyldning

ECMAScript 2017 har tilføjet to nye String-metoder:padStart og padEndFor at understøtte udfyldning af begge ends af en streng.

instance

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

Prøv det selv

instance

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

Prøv det selv

Internet Explorer does not support string padding.

Firefox and Safari were among the first browsers to support JavaScript string padding:

Chrome IE Firefox Safari Opera
Chrome 57 Edge 15 Firefox 48 Safari 10 Opera 44
Marts 2017 April 2017 2016 August 2016 September Marts 2017

JavaScript object entries

ECMAScript 2017 added new Object.entries method.

The Object.entries() method returns an array of key/value pairs from the object:

instance

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

Prøv det selv

Object.entries() simplifies looping with objects:

instance

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

Prøv det selv

Object.entries() also makes it easy to convert an object to a map:

instance

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

Prøv det selv

Chrome and Firefox were among the first to support Object.entries browser:

Chrome IE Firefox Safari Opera
Chrome 47 Edge 14 Firefox 47 Safari 10.1 Opera 41
2016 June 2016 August 2016 June Marts 2017 Oktober 2016

JavaScript object values

Object.values Similar Object.entriesHowever, it returns a one-dimensional array of object values:

instance

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

Prøv det selv

Firefox and Chrome were among the first to support Object.values browser:

Chrome IE Firefox Safari Opera
Chrome 54 Edge 14 Firefox 47 Safari 10.1 Opera 41
Oktober 2016 2016 August 2016 June Marts 2017 Oktober 2016

JavaScript Async funktioner

Vent timeout

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

Prøv det selv

Firefox og Chrome var de første browsere, der understøttede asynkrone JavaScript-funktioner:

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