ECMAScript 2017
Die JavaScript-Namenskonvention begann mit ES1, ES2, ES3, ES5 und ES6.
ECMAScript 2016 und 2017 hießen jedoch nicht ES7 und ES8.
Seit 2016 werden neue Versionen nach Jahr benannt (ECMAScript 2016 / 2017 / 2018).
Neue Funktionen in ECMAScript 2017
Dieses Kapitel stellt die neuen Funktionen in ECMAScript 2017 vor:
- JavaScript-String-Padding
- JavaScript-Objekteinträge
- JavaScript-Objekt.Werte
- Asynchrone JavaScript-Funktionen
- Gemeinsamer JavaScript-Speicher
JavaScript-String-Padding
ECMAScript 2017 hat zwei String-Methoden hinzugefügt: padStart
und padEnd
um das Auffüllen am Anfang und am Ende einer Zeichenfolge zu unterstützen.
Beispiel
let str = "5";
str = str.padStart(4,0);
// result is 0005
Beispiel
let str = "5";
str = str.padEnd(4,0);
// result is 5000
Das Auffüllen von Zeichenfolgen wird in Internet Explorer nicht unterstützt.
Firefox und Safari waren die ersten Browser mit Unterstützung für das Auffüllen von JavaScript-Strings:
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Mar 2017 | Apr 2017 | Aug 2016 | Sep 2016 | Mar 2017 |
JavaScript-Objekteinträge
ECMAScript 2017 fügt Object.entries
Objekten eine neue Methode hinzu.
Die Methode Object.entries() gibt ein Array der Schlüssel/Wert-Paare in einem Objekt zurück:
Beispiel
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.entries(person);
Object.entries() macht es einfach, Objekte in Schleifen zu verwenden:
Beispiel
const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}
Object.entries() macht es auch einfach, Objekte in Karten umzuwandeln:
Beispiel
const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));
Chrome und Firefox waren die ersten Browser mit Unterstützung für
Object.entries
:
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Jun 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
JavaScript-Objektwerte
Object.values
sind ähnlich wie Object.entries
, geben aber ein eindimensionales Array der Objektwerte zurück:
Beispiel
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.values(person);
Firefox und Chrome waren die ersten Browser mit Unterstützung für
Object.values
:
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Oct 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
JavaScript-Async-Funktionen
Warten auf eine Zeitüberschreitung
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 und Chrome waren die ersten Browser mit Unterstützung für asynchrone JavaScript-Funktionen:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec 2016 | Apr 2017 | Mar 2017 | Sep 2017 | Dec 2016 |