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