Добро пожаловать в серию «ES6 в деталях»! В этой еженедельной серии статей мы будем изучать ECMAScript 6 — новую готовящуюся к выходу спецификацию языка JavaScript. ES6 имеет множество новых возможностей, которые делают JS мощнее и выразительнее, и каждую неделю мы будем рассматривать эти возможности. Но прежде чем мы приступим, неплохо бы поговорить о том, чем является ES6 и что от него ожидать.
За что отвечает ECMAScript?
Язык JavaScript стандартизирутеся организацией ECMA (наподобие W3C), а сам стандарт носит название ECMAScript. ECMAScript определяет следующее:
- Синтаксис языка — правила парсинга, ключевые слова, операторы, выражения и прочее;
- Типы — числа, строки, объекты и прочее;
- Прототипы и наследование
- Стандартную библиотеку встроенных объектов и функций — JSON, Math, методы массивов, методы объектов и тому подобное.
Что ECMAScript не определяет, так это всё, что связано с HTML и CSS, а также всевозможные
Новый стандарт
Пару недель назад итоговый вариант спецификации ECMAScript в шестой редакции был отправлен на утверждение в Ecma General Assembly. Что это означает?
Это значит, что уже этим летом у нас будет новый стандарт для языка JavaScript.
Это большая новость. Новая спецификация JS не падает с небес каждый день. Последняя спецификация, ES5, была принята в 2009 году. Комитет стандарта ES с тех пор работает над ES6.
ES6 является мажорным релизом новой версии языка. В то же время ваш старый код продолжит работать. ES6 обеспечивает максимальную совместимость с уже написанным кодом. Кстати, многие браузеры уже сейчас поддерживают некоторые возможности ES6, и работа над реализацией других фич продолжается. Это значит, что весь ваш код работает в браузерах с реализованными частями ES6! Если вы ещё не наблюдали проблем с совместимостью (а вы их не наблюдали), то и в будущем они не появятся.
Считаем до 6
Предыдущие редакции стандарта ECMAScript имели номера 1, 2, 3 и 5.
Что случилось с четвёртой редакцией? Редакция ECMAScript 4 была запланирована, и над ней было проведено много работы, но в итоге от неё отказались как от слишком амбициозной. (Например, в ней была изощрённая встроенная статическая типизация).
Четвёртая редакция ECMAScript была весьма спорной. Когда комитет по стандартам окончательно прекратил над ней работу, члены комитета решили опубликовать относительно скромную редакцию ES5. После этого они решили продолжить работу над более важными новыми возможностями. Именно поэтому шестая редакция ECMAScript носит название «Harmony» и содержит в спецификации эти два предложения:
ECMAScript — динамично развивающийся язык, и его эволюция ещё не закончилась. В будущих версиях этой спецификации появятся значительные технические улучшения.
Это утверждение можно считать
Обещания выполнены
В ES5, обновлении 2009 года, были представлены
Object.create()
, Object.defineProperty()
, геттеры и сеттеры, строгий режим (strict mode) и объект JSON. Я использовал все эти возможности, и мне понравилось то, что ES5 сделал для языка. У меня нет слов для описания того, какое влияние эти нововведения оказали на то, как я пишу .map()
, .filter()
и тому подобные.А ECMAScript 6 довольно сильно отличается. Это результат долгих лет слаженной работы. И это клад новых возможностей языка. Наиболее значимое обновление JS, которое было
Цель этой серии — путём рассмотрения новых возможностей показать вам, как ES6 радикально изменит ваш код.
Мы начнём с фич, которые многие ждали долгое время —
for-of
. Увидимся на следующей неделе!