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

12 июля 2017 года

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

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

Основные новшества (Архивная копия от 8 марта 2018 на Wayback Machine):

  • Добавлены методы Object.values() и Object.entries(), который дополняют уже стандартизированный метод Object.keys и позволяют получить массив из значений или связок ключ/значение для хранящихся в объекте перечисляемых данных (позволяет раскрыть содержимое ассоциативного массива без перебора в "for in");
  • Добавлены методы String.padStart() и String.padEnd(), позволяющие организовать вывод строк с заполнением, например, выровнять консольный вывод или отображать числа с сохранением фиксированного размера путём добавления повторяющегося шаблона заполнения в начало или конец строки. Например, 'abc'.padEnd(10, "foo") выдаст "abcfoofoof", а 'abc'.padEnd(6,"123465") выдаст "abc123";
  • Добавлен метод Object.getOwnPropertyDescriptors(), который возвращает все описания свойств, определённых непосредственно в объекте и не наследованных из других объектов (например, позволяет узнать установлены ли свойства value, set, get, writable, enumerable и т.п.);
  • Включена поддержка деклараций функций async ("async function"), возвращающих объект AsyncFunction, а также оператора await, которые позволяют упростить написание кода, выполняемого в асинхронном режиме, не блокируя основной поток команд. Конструкции с async/await значительно проще для восприятия и более читаемы, по сравнению с аналогичными конструкциями на основе механизма Promise;
  • Разрешено оставлять запятые после последнего элемента списке параметров функций. Запятые можно оставлять как при определении, так и при вызове функций (например, "function f(a,b,)" и "f(1,2,)");
  • Добавлен тип SharedArrayBuffer, позволяющий создавать массивы в разделяемой памяти. Для обеспечения возможности писать и читать данные одновременно из нескольких потоков предложен глобальный объект Atomics, который позволяет организовать выполнение атомарных операций с данными в разделяемой памяти, включая средства синхронизации блокировок примитивов.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Утверждён стандарт ECMAScript 8 (2017)», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.