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 padEndaby 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

Spróbuj sam

przykład

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

Spróbuj sam

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);

Spróbuj sam

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 + "
";
}

Spróbuj sam

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));

Spróbuj sam

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.entriesale 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);

Spróbuj sam

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();

Spróbuj sam

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