Skip to content
/ myJS Public

The first approximation to a common understanding of the ECMAScript Language Specification.

License

Notifications You must be signed in to change notification settings

mjdocs/myJS

Repository files navigation



The World’s Most Misunderstood Programming Language Has Become the World’s Most Popular Programming Language
~ Douglas Crockford, 2008

📜1


— MyJS Web Docs —

Первое приближение к общему пониманию ECMAScript Language Specification.

MyJS Web Docs — это неофициальная авторская документацая в формате непринуждённого разговора с читателем, представляющая из себя набор сгруппированных по главам тем, мыслей, фактов, выводов и собственных мнений относительно того, чем для меня является спецификация ECMAScript, как для разработчика на языке JavaScript. Я попытался проникнуться содержанием данной спецификации и в помощь всем остальным, кто тоже захочет её постичь, решил написать данный документ, отражающий моё видение тех вещей, которые находятся непосредственно в зоне ответственности официального стандарта ECMA-262. Документация вынесена на суд общественности и комьюнити разработчиков в полном объёме. Активные споры и конструктивные предложения приветствуются.


🗂️ Содержание

Warning

В данный момент продукт находится на этапе активной разработки! Содержимое и оформление может изменяться.

Note

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

Здесь представлено полное доступное содержание документации:

Часть 1: ECMAScript


🍰 Мотивация

В жизни каждого разработчика возникает момент, когда он сталкивается с задачами, где вопрос оптимизации крайне важен. А когда синтаксис языка и его паттерны уже изучены и отработаны на практике, хочется понять, как он работает "под капотом". Понимание спецификации языка ECMAScript - огромный шаг на пути к написанию высокооптимизированного кода. Задача документации — углубиться в недра спецификации и показать, из чего она состоит, как её читать и как устроены основные алгоритмы языка. В этом нам поможет, к сожалению, единственный официальный источник - ECMAScript Language Specification.

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

var str = 'hello' // свяжем идентификатор str со строкой 'hello'

Для написания качественного кода знаний одной лишь спецификации недостаточно! Немаловажным будет изучить и работу оптимизирующего движка, например, V8 — самый успешный JavaScript движок современности.


🚀 Внесли серьёзный вклад

Здесь представлены люди2, которые немало поработали над тем, чтобы документация вышла в свет и в будущем становилась только лучше по мере выхода новых глав, исправлений и дополнений. Этот список будет пополняться в зависимости от вкладов в проект.


Информация собрана при поддержке3 таких проектов, как:

           

🎓 Лицензия и Авторское право

На документацию распространяется лицензия: CC BY-NC-ND 4.0

Footnotes

  1. Название статьи, опубликованной в 2008 году американским программистом Дугласом Крокфордом. На тот момент это была интересная фигура в мире веб-индустрии. Сам Брендан говорил о нём такие слова.

  2. Каждый участник этого блока имеет возможность выбрать для себя анимированную рамку на свою фотографию. Использование рамок имеет некоммерческий характер и предоставляется разделом сайта Steam.

  3. Под поддержкой автор подразумевает регулярный выпуск представленными проектами новой информации и её последующее обновление с целью актуализации. Отчасти данный продукт развивается в том числе благодаря этим проектам.