ECMAScript 2017
Угода про іменування JavaScript почалась з ES1, ES2, ES3, ES5 та ES6.
Але ECMAScript 2016 та ECMAScript 2017 не називалися ES7 та ES8.
З 2016 року нові версії іменуються по рокам (ECMAScript 2016/2017/2018).
Нові можливості ECMAScript 2017
В цьому розділі представлені нові функції в ECMAScript 2017:
- JavaScript Заповнення рядків
- JavaScript Object.entries
- JavaScript Object.values
- JavaScript Асинхронні функції
- JavaScript Загальна пам’ять
JavaScript Заповнення рядків
В ECMAScript 2017 додані два методи рядків: padStart
та padEnd
для підтримки заповнення на початку та в кінці рядка.
Заповнення рядків не підтримується в Internet Explorer.
Firefox та Safari були першими браузерами з підтримкою заповнення рядків в JavaScript:
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Mar 2017 | Apr 2017 | Aug 2016 | Sep 2016 | Mar 2017 |
JavaScript Записи об’єктів
ECMAScript 2017 додав до об’єктів новий метод Object.entries
.
Метод Object.entries() повертає масив пар ключ / значення в об’єкті:
Приклад
const person = {
firstName : "John",
lastName : "Doe",
age: 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML = Object.entries(person);
Спробуйте самі »
Object.entries() спрощує використання об’єктів в циклах:
Приклад
const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}
Спробуйте самі »
Object.entries() також спрощує конвертацію об’єктів в мапи:
Приклад
const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));
Спробуйте самі »
Chrome та Firefox були першими браузерами з підтримкою Object.entries
:
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Jun 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
JavaScript Значення об’єкту
Object.values
схожий на Object.entries
, але повертає одномірний масив значень об’єкту:
Приклад
const person = {
firstName : "John",
lastName : "Doe",
age: 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML = Object.values(person);
Спробуйте самі »
Firefox та Chrome були першими браузерами з підтримкою 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 function myDisplay() {
let myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("I love You !!"); }, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
Firefox та Chrome були першими браузерами з підтримкою асинхронних функцій JavaScript:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Des 2016 | Apr 2017 | Mar 2017 | Sep 2017 | Des 2016 |