Генеральної Асамблеї ECMA офіційно затвердила стандарт ECMAScript 2017 (ECMAScript 8 або «ECMA-262 8th edition»), що визначає базові функціональні можливості JavaScript.
У ECMAScript 8 увійшли зміни, пов'язані з усуненням недоробок і внесенням уточнень до минулих випусків ECMAScript. Також додані кілька нововведень. У стандарт перенесені вже підтримувані браузерами можливості, тому ECMAScript 8 відразу доступний у всіх основних браузерах і не вимагає додаткового часу на реалізацію.
Основні нововведення:
-
Додані методи Object.values () і Object.entries (), які доповнюють вже стандартизований метод
Object.keys
і дозволяють отримати масив зі значень і зв'язок ключ/значення для перелічуваних даних, зберігаються в об'єкті (дозволяють розкрити вміст асоціативного масиву без перебору вfor in
); -
Додані методи String.prototype.padStart () і String.prototype.padEnd (), що дозволяють організувати виведення рядків із заповненням, наприклад, вирівняти консольний вивід або відображати числа зі збереженням фіксованого розміру шляхом додавання повторюваного шаблону заповнення в початок або кінець рядка. Наприклад,
'abc'.padEnd (10, "foo")
видасть "abcfoofoof", а'abc'.padEnd (6, "123465")
видасть "abc123"; -
Доданий метод Object.getOwnPropertyDescriptors (), який повертає всі описи типів властивостей для заданого об'єкта (наприклад, дозволяє дізнатися чи встановлені властивості value, set, get, writable тощо.);
-
Додана підтримка функцій async і оператора await, що дозволяє спростити написання коду, що виконується в асинхронному режимі. Конструкції з async / await значно простіше сприймати, в порівнянні з аналогічними конструкціями на основі Promise;
-
Дозволено залишати коми після останнього елемента в масивах і об'єктах (наприклад,
var arr = [1, 2, 3,];
). У масивах також можна залишати незаповнені елементи (наприклад,var arr = [1, 2, 3 ,,,];
) замість яких залишаться порожні значення; -
Доданий тип SharedArrayBuffer, що дозволяє створювати масиви в пам'яті, а також глобальний об'єкт Atomics для організації виконання атомарних операцій з даними в пам'яті.
Ще немає коментарів