Изучение JavaScript может сбить с толку по множеству причин, и одна из них — акронимы. Чтобы не дать сокращениям сбить вас с толку, в этой статье мы разберём их значения и историю возникновения.
Сначала немного истории. JavaScript создавался как скриптовый язык для Netscape. После чего он был отправлен в ECMA International для стандартизации (ECMA — это ассоциация, деятельность которой посвящена стандартизации информационных и коммуникационных технологий). Это привело к появлению нового языкового стандарта, известного как ECMAScript.
Последующие версии JavaScript уже были основаны на стандарте ECMAScript. Проще говоря, ECMAScript — стандарт, а JavaScript — самая популярная реализация этого стандарта.
ES — это просто сокращение для ECMAScript. Каждое издание ECMAScript получает аббревиатуру ES с последующим его номером. Всего существует 8 версий ECMAScript. ES1 была выпущена в июне 1997 года, ES2 — в июне 1998 года, ES3 — в декабре 1999 года, а версия ES4 — так и не была принята. Не будем углубляться в эти версии, так как они морально устарели, а рассмотрим только последние четыре.
ES5 был выпущен в декабре 2009 года, спустя 10 лет после выхода третьего издания. Среди изменений можно отметить:
getters
и setters
;Версия 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. Стоит отметить, что каждая новая версия приносит новые функции для языка.