Утверждён стандарт ECMAScript 8 (2017)

3 месяца ago admin 0

На собрании Генеральной Ассамблеи ECMA официально утверждён стандарт ECMAScript 2017 (ECMAScript 8 или «ECMA-262 8th edition»), определяющий базовые функциональные возможности JavaScript. ECMAScript 8 был подготовлен в соответствии с представленным в прошлом году непрерывным процессом формирования стандартов ECMAScript, которые теперь выпускаются ежегодно и развиваются в рамках непрерывно обновляемого варианта спецификации ECMAScript Next.

В ECMAScript 8 вошли изменения, связанные с устранением недоработок и внесением уточнений к прошлым выпускам ECMAScript, а также добавлено несколько новшеств. В стандарт перенесены уже поддерживаемые браузерами возможности, поэтому ECMAScript 8 сразу доступен во всех основных браузерах и не требует дополнительного времени на реализацию.

Основные новшества:

  • Добавлены методы Object.values() и Object.entries(), который дополняют уже стандартизированный метод Object.keys и позволяют получить массив из значений и связок ключ/значение для хранящихся в объекте данных (раскрытие ассоциативного массива);
  • Добавлены методы 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 для организации выполнения атомарных операций с данными в разделяемой памяти, включая средства синхронизации блокировок примитивов.


Source: pirates.in.ua