ECMAScript 2017
Названия JavaScript начинаются с ES1, ES2, ES3, ES5 и ES6.
Но ECMAScript 2016 и 2017 не называются ES7 и ES8.
С 2016 года новые версии называются по годам (ECMAScript 2016/2017/2018).
Новые функции в ECMAScript 2017
Эта глава знакомит с новыми функциями ECMAScript 2017:
- Заполнение строк в JavaScript
- Object.entries в JavaScript
- Object.values в JavaScript
- Асинхронные функции JavaScript
- Общий память JavaScript
Заполнение строк в JavaScript
ECMAScript 2017 добавил два новых метода String:padStart
и padEnd
Для поддержки заполнения в начале и в конце строки.
пример
let str = "5"; str = str.padStart(4,0); // Результат: 0005
пример
let str = "5"; let str = "5"; str = str.padEnd(4,0);
// Результат: 5000
Internet Explorer не поддерживает заполнение строк.
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Firefox и Safari стали первыми браузерами, поддерживающими JavaScript-заполнение строк: | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Март 2017 года | Апрель 2017 года | 2016 год 8 августа | 2016 год 9 сентября | Март 2017 года |
входы JavaScript объекта
ECMAScript 2017 добавил новые Object.entries
метод.
Метод Object.entries() возвращает массив пар ключ/значение из объекта:
пример
const person = { firstName : "Bill", lastName : "Gates", 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 | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
2016 год 6 июня | 2016 год 8 августа | 2016 год 6 июня | Март 2017 года | Октябрь 2016 года |
значениям JavaScript объекта
Object.values
аналогичен Object.entries
но возвращает одномерный массив значений объекта:
пример
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.values(person);
Firefox и Chrome стали первыми, кто поддержал Object.values
браузеры:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Октябрь 2016 года | 2016 год 8 августа | 2016 год 6 июня | Март 2017 года | Октябрь 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 | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Декабрь 2016 года | Апрель 2017 года | Март 2017 года | Сентябрь 2017 года | Декабрь 2016 года |