浏览器如何解析和解释JavaScript代码

How do browsers parse and interpret JavaScript code?

本文关键字:JavaScript 代码 解释 何解析 浏览器      更新时间:2023-09-26

浏览器如何解析从文件或内联加载的JavaScript ?我试图了解浏览器的核心功能。当页面加载时,它有外部文件的<script>引用,并且页面上也有实际的JavaScript。有什么好文章吗?

这是在ECMAScript标准中定义的

首先,源文本(<script>标记之间的内容)被转换成一系列标记(根据语言的Lexical Grammar):

ECMAScript程序的源文本首先被转换成输入元素序列,这些元素包括令牌、行终止符、注释或空白。从左到右扫描源文本对,重复地取最长的字符序列作为下一个输入元素。

阅读这里:http://es5.github.com/#x7

这一系列标记被视为一个程序,然后根据ECMAScript标准第11到14章中定义的语言的Syntactic Grammar求值。

ECMAScript的句法语法在子句11、12、13中给出和14。该语法具有由词法定义的ECMAScript令牌语法作为其终末符号(5.1.2)。它定义了一组生成,从目标符号Program开始,描述如何标记序列可以形成语法正确的ECMAScript项目。

阅读这里:http://es5.github.com/#x5.1.4

从第14章开始:http://es5.github.com/#x14


注意每个<script>元素代表一个单独的JavaScript程序。
阅读这里:在浏览器中为一个网页执行多少JavaScript程序?

这可能是对浏览器根据ECMAScript标准所做的事情的最好描述:标识符解析、执行上下文和作用域链