Что такое ECMAScript и чем это отличается от JavaScript
Изучение JavaScript может сбить с толку по множеству причин, и одна из них — акронимы. Чтобы не дать сокращениям сбить вас с толку, в этой статье мы разберём их значения и историю возникновения.
Что такое ECMAScript?
Сначала немного истории. JavaScript создавался как скриптовый язык для Netscape. После чего он был отправлен в ECMA International для стандартизации (ECMA — это ассоциация, деятельность которой посвящена стандартизации информационных и коммуникационных технологий). Это привело к появлению нового языкового стандарта, известного как ECMAScript.
Последующие версии JavaScript уже были основаны на стандарте ECMAScript. Проще говоря, ECMAScript — стандарт, а JavaScript — самая популярная реализация этого стандарта.
Что такое ES? История версий
ES — это просто сокращение для ECMAScript. Каждое издание ECMAScript получает аббревиатуру ES с последующим его номером. Всего существует 8 версий ECMAScript. ES1 была выпущена в июне 1997 года, ES2 — в июне 1998 года, ES3 — в декабре 1999 года, а версия ES4 — так и не была принята. Не будем углубляться в эти версии, так как они морально устарели, а рассмотрим только последние четыре.
ES5 был выпущен в декабре 2009 года, спустя 10 лет после выхода третьего издания. Среди изменений можно отметить:
- поддержку строгого режима (strict mode);
- аксессоры
getters
иsetters
; - возможность использовать зарезервированные слова в качестве ключей свойств и ставить запятые в конце массива;
- многострочные строковые литералы;
- новую функциональность в стандартной библиотеке;
- поддержку JSON.
Версия ES6/ES2015 вышла в июне 2015 года. Это также принесло некую путаницу в связи с названием пакета, ведь ES6 и ES2015 — это одно и то же. С выходом этого пакета обновлений комитет принял решение перейти к ежегодным обновлениям. Поэтому издание было переименовано в ES2015, чтобы отражать год релиза. Последующие версии также называются в соответствии с годом их выпуска. В этом обновлении были сделаны следующие изменения:
- добавлено деструктурирующее присваивание;
- добавлены стрелочные функции;
- в шаблонных строках можно объявлять строки с помощью
`
(обратных кавычек). Шаблонные строки могут быть многострочными, также могут интерполироваться; let
иconst
— альтернативыvar
для объявления переменных. Добавлена «временная мертвая зона»;- итератор и протокол итерации теперь определяют способ перебора любого объекта, а не только массивов.
Symbol
используется для присвоения итератора к любому объекту; - добавлены функции-генераторы. Они используют
yield
для создания последовательности элементов. Функции-генераторы могут использоватьyield*
для делегирования в другую функцию генератора, кроме этого они могут возвращать объект генератора, который реализует оба протокола; - добавлены промисы.
ES2016 (ES7) вышла в июне 2016 года. Среди изменений в этой версии ECMAScript можно отметить:
- оператор возведения в степень
**
; - метод
Array.prototype.includes
, который проверяет, содержится ли переданный аргумент в массиве.
Спустя еще год выходит версия ES2017 (ES8). Данный стандарт получил следующие изменения:
- асинхронность теперь официально поддерживается (
async
/await
); - «висячие» запятые в параметрах функций. Добавлена возможность ставить запятые в конце списка аргументов функций;
- добавлено два новых метода для работы со строками:
padStart()
иpadEnd()
. МетодpadStart()
подставляет дополнительные символы слева, перед началом строки. АpadEnd()
, в свою очередь, справа, после конца строки; - добавлена функция
Object.getOwnPropertyDescriptors()
, которая возвращает массив с дескрипторами всех собственных свойств объекта; - добавлено разделение памяти и объект
Atomics
.
Что же касается ES.Next, то этот термин является динамическим и автоматически ссылается на новую версию ECMAScript. Стоит отметить, что каждая новая версия приносит новые функции для языка.
Выводы
- ECMAscript выходит ежегодно;
- первые пакеты обновления назывались ES1, ES2, ES3, ES4, ES5;
- новые выпуски (начиная с 2015 года) получили название ES2015, ES2016, ES2017 (аббревиатура ES + год выпуска);
- ECMAScript является стандартом, а JavaScript — это самая популярная реализация этого стандарта. Среди других реализаций можно отметить SpiderMonkey, V8 и ActionScript.