Поддержка ECMAScript 5 и ECMAScript 6 Harmony в браузерах уже сейчас

Поддержка ECMAScript 5 и ECMAScript 6 Harmony в браузерах уже сейчас Небольшое пояснение для тех кому слова ECMAScript и Harmony ни о чем не говорят. ECMAScript это спецификация языка, на основе которой развивается наш с вами JavaScript. А Harmony это следующая версия ECMAScript, работа над которой сейчас активно ведется. Теперь немного о том какие изменения произошли в этих версиях и какова текущая поддержка в браузерах.

ECMAScript 5

Это первое большое изменение спецификации, разработка которой шла около 10 лет. И, к сожалению, только недавно браузеры начали активное внедрение нового функционала. Коротко о том, что нового пришло с ECMAScript 5.

Array extras

Object extras

Так же добавлена поддержка native JSONgetters и setters, метода bind для Function и strict режим.

На данный момент, только самые современные браузеры более-менее полно поддерживают ECMAScript 5. Среди них >= IE9, >= Firefox 4, >= Safari 5.1, >= Chrome 13, >= Opera 12. Полную таблицу поддержки спецификации можно посмотреть здесь.

ECMAScript 6 или Harmony

В данный момент спецификация не закончена. На мой взгляд это самое большое, структурное и синтаксическое изменение языка за все время. Спецификация довольно объемная, поэтому я остановлюсь только на самом интересном для себя.

  • let — точно так же как var ограничивает видимость переменных в пределах функции, let ограничивает видимость переменных в пределах блока.
  • const — создание read-only констант.
  • Maps и WeakMap — для работы с объектами ключ/значение.

Кстати, CoffeeScript очень помог развитию Harmony, вот изменения в спецификации напрямую перешедшие из него:

Так же расширение методов Function, String, Number, Object, RegExp, Math и другие изменения.

Поддержка в текущих браузерах достаточно слабая, однако в отдельных браузерах части спецификации уже реализованы. Полную таблицу поддержки спецификации можно посмотреть здесь.

Все это здорово, но я хочу сейчас!

Специально для тех кто хочет уже сейчас писать по спецификации и не думать работает это в их браузере или нет созданы два проекта: es5-shim и es6-shim. Оба этих проекта реализуют функционал из спецификации недоступный текущему браузеру. Разумеется речи не идет о полной поддержки, однако большинство полезных новшеств уже работают хорошо.

Что ещё почитать?

← Как сделать онлайн Twitter трансляцУстановка PHP 5.4 на OS X Lion →