JavaScript, когда-то появившийся как скриптовый язык для создания интерактивности в браузере, сегодня оброс бесчисленным количество фреймворков, библиотек и даже стандартов. В таком бурном водовороте инноваций сложно не запутаться и еще сложнее изучать язык. В данной серии статей разложим по полкам все, что может запутать при изучении языка начинающими и проясним термины, на понимание которых уходят годы.
Немного истории
В 1995 году в браузер Netscape Navigator впервые был интегрирован JavaScript. Тогда единственной функцией языка было "сделать страницы живыми". Название языка выбрано неспроста. На тот момент Java был у всех на слуху и маркетологи решили воспользоваться возможностью, назвав язык похожим образом. Результаты этого нейминга приводят к путаницам и по сей день.
Стандарты языка
Немногим позже JavaScript захлестнула волна популярности. Все производители браузеров начали активно интегрировать JS в свои продукты. Однако, каждый производитель браузеров хотел иметь определенное преимущество перед своими конкурентами. Большинство из них выбрало путь наименьшего сопротивления и стало добавлять определенные фичи во встроенные JavaScript своих браузеров. Это привело к диким различиям в одном языке и страданию многих разработчиков. Можно было реализовать одну функциональность в браузере Netscape, но она не будет работать в IE и наоборот. Более того, это касалось не только особенных фич, но и самых стандартных методов, которые банально писались по разному.
Через некоторое время ситуация стабилизировалась. Разработчики браузеров пришли к консенсусу и произвели на свет стандарты, дабы все браузеры им соответствовали. Стандарты называются ECMAscript (произносится как "экмаскрипт"). Отныне JavaScript стал лишь обозначать собирательный образ технологий, а сам язык стал официально называться ECMAscript с приставкой версии. На данный момент самой стабильной и популярной версией языка является ES5, который поддерживается всеми официальными браузерами. Однако, новая версия ECMAscript выходит каждый год. Следующей версией после ES5 является ES6 или ES2015 (обратите внимание, что последняя цифра года не соответствует номеру версии).
Транспиляторы
Однако, вместе с таким бурным развитием языка появились проблемы. Дело в том, что очень сложно переводить всех пользователей браузеров на новые версии и как итог большинство пользователей использовали, откровенно говоря, динозавров, вроде IE8, что не давало разработчикам применять возможности новых версий ECMAscript. Решением стали так называемые транспиляторы. Это специальные программы, которые переводят (или как обычно говорят "транспилируют") код, написанный на ECMAscript 6 и выше в ECMAscript 5. Транспиляторы используются практически в любом современной JavaScript приложении и давно вышли за рамки использования в браузерах. Наиболее популярным представителем транспиляторов является babel.
С следующей статье проясним особенности современного JavaScript'а.