ECMAScript 2017
Zasady nazewnictwa w JavaScript zaczynają się od ES1, ES2, ES3, ES5 i ES6.
Jednak ECMAScript 2016 i 2017 nie są nazywane ES7 i ES8.
Od 2016 roku nowa wersja jest nazwana rokiem (ECMAScript 2016/2017/2018).
Nowe cechy ECMAScript 2017
Rozdział ten przedstawia nowe cechy ECMAScript 2017:
- Wypełnianie ciągów znaków w JavaScript
- Object.entries w JavaScript
- Object.values w JavaScript
- Asynchroniczne funkcje w JavaScript
- Współdzielona pamięć w JavaScript
Wypełnianie ciągów znaków w JavaScript
ECMAScript 2017 dodał dwa nowe metody String:padStart
i padEnd
aby obsługiwać wypełnianie na początku i końcu ciągów znaków.
przykład
let str = "5"; str = str.padStart(4,0); // Wynik: 0005
przykład
let str = "5"; str = str.padEnd(4,0); // Wynik to: 5000
Internet Explorer nie wspiera wypełniania ciągów znaków.
Firefox i Safari były pierwszymi przeglądarkami, które wspierały wypełnianie ciągów znaków JavaScript:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Marzec 2017 roku | Kwiecień 2017 roku | 2016 roku 8 sierpnia | 2016 roku 9 września | Marzec 2017 roku |
wpisy obiektu JavaScript
ECMAScript 2017 dodał nowe Object.entries
metoda.
Metoda Object.entries() zwraca tablicę klucz-wartość obiektu:
przykład
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.entries(person);
Metoda Object.entries() upraszcza iterowanie po obiekcie w pętli:
przykład
const fruits = {Bananas:300, Oranges:200, Apples:500}; let text = ""; for (let [fruit, value] of Object.entries(fruits)) { text += fruit + ": " + value + " "; }
Metoda Object.entries() upraszcza przekształcanie obiektu w mapę:
przykład
const fruits = {Bananas:300, Oranges:200, Apples:500}; const myMap = new Map(Object.entries(fruits));
Chrome i Firefox były pierwszymi przeglądarkami, które wspierały Object.entries
przeglądarek:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
2016 roku 6 czerwca | 2016 roku 8 sierpnia | 2016 roku 6 czerwca | Marzec 2017 roku | Październik 2016 roku |
wartości obiektu JavaScript
Object.values
podobne Object.entries
ale zwraca jednowymiarowy tablicę wartości obiektu:
przykład
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.values(person);
Firefox i Chrome były pierwszymi przeglądarkami, które wspierały Object.values
przeglądarek:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Październik 2016 roku | 2016 roku 8 sierpnia | 2016 roku 6 czerwca | Marzec 2017 roku | Październik 2016 roku |
Asynkroniczne funkcje JavaScript
czekaj na przekroczenie czasu
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 i Chrome są pierwszymi przeglądarkami, które wspierają asynchroniczne funkcje JavaScript:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Listopad 2016 roku | Kwiecień 2017 roku | Marzec 2017 roku | Wrzesień 2017 roku | Listopad 2016 roku |