Как браузеры анализируют и интерпретируют код JavaScript? - PullRequest
16 голосов
/ 21 сентября 2011

Как браузер выполняет синтаксический анализ JavaScript, который загружается из файлов или встроенных файлов? Я пытаюсь понять суть того, что делает браузер. Что происходит, когда страница загружается и имеет <script> ссылки на внешние файлы, а также настоящий JavaScript на странице. Какие-нибудь хорошие статьи там?

Ответы [ 2 ]

15 голосов
/ 21 сентября 2011

Это определено в стандарте ECMAScript.

Сначала исходный текст (содержимое между тегами <script>) преобразуется в серию токенов (согласно Лексической грамматике языка):

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

Читайте здесь: http://es5.github.com/#x7

Эта серия токенов рассматривается как Программа, которая затем оценивается в соответствии с Синтаксической грамматикой языка, который определен в главах 11-14 стандарта ECMAScript.

Синтаксическая грамматика для ECMAScript приведена в пунктах 11, 12, 13 и 14. Эта грамматика имеет токены ECMAScript, определенные лексическим грамматика как терминальные символы (5.1.2). Он определяет набор спектакли, начиная с целевой программы, которые описывают, как последовательности токенов могут формировать синтаксически правильный ECMAScript программы.

Читайте здесь: http://es5.github.com/#x5.1.4

Он начинается в главе 14: http://es5.github.com/#x14


Обратите внимание, что каждый элемент <script> представляет отдельную программу JavaScript.
Читайте здесь: Сколько программ JavaScript выполняется для одной веб-страницы в браузере?

0 голосов
/ 21 сентября 2011

Это, вероятно, лучшее описание того, что делает браузер в соответствии со стандартом ECMAScript. Javascript Closures: разрешение идентификатора, контексты выполнения и цепочки областей действия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...