Pull to refresh

ES6 в деталях: введение

Reading time3 min
Views119K
Original author: jorendorff
ES6 в деталях
Добро пожаловать в серию «ES6 в деталях»! В этой еженедельной серии статей мы будем изучать ECMAScript 6 — новую готовящуюся к выходу спецификацию языка JavaScript. ES6 имеет множество новых возможностей, которые делают JS мощнее и выразительнее, и каждую неделю мы будем рассматривать эти возможности. Но прежде чем мы приступим, неплохо бы поговорить о том, чем является ES6 и что от него ожидать.

За что отвечает ECMAScript?


Язык JavaScript стандартизирутеся организацией ECMA (наподобие W3C), а сам стандарт носит название ECMAScript. ECMAScript определяет следующее:


Что ECMAScript не определяет, так это всё, что связано с HTML и CSS, а также всевозможные веб-API, например DOM. Всё это определено отдельными стандартами. ECMAScript покрывает те аспекты языка, которые представлены не только в браузерах, но также и в платформах вроде node.js.

Новый стандарт


Пару недель назад итоговый вариант спецификации 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 сделал для языка. У меня нет слов для описания того, какое влияние эти нововведения оказали на то, как я пишу JS-код. Самым важным нововведением для меня оказались новые методы массивов: .map(), .filter() и тому подобные.

А ECMAScript 6 довольно сильно отличается. Это результат долгих лет слаженной работы. И это клад новых возможностей языка. Наиболее значимое обновление JS, которое было когда-либо. Новые возможности варьируются от простых удобств вроде функций-стрелок и интерполяции строк до мозговзрывающих концепций вроде прокси и генераторов.
Цель этой серии — путём рассмотрения новых возможностей показать вам, как ES6 радикально изменит ваш код.
Мы начнём с фич, которые многие ждали долгое время — ES6-итераторы и новый цикл for-of. Увидимся на следующей неделе!
Tags:
Hubs:
Total votes 17: ↑12 and ↓5+7
Comments28

Articles