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 padEnd
For at understøtte udfyldning af begge ends af en streng.
instance
let str = "5"; str = str.padStart(4,0); // Resultat er: 0005
instance
let str = "5"; str = str.padEnd(4,0); // Result is: 5000
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);
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 + " "; }
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));
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.entries
However, 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);
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();
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 |