Как браузеры анализируют и интерпретируют код JavaScript?

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

Ответы

Ответ 1

Это определено в стандарте 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 выполняется для одной веб-страницы в браузере?