【核心基础知识】认识浏览器的javascript引擎

JavaScript 引擎的编译过程大体上,可分为解析、解释和优化 3 个步骤。下面就以 V8 引擎为例。

一.编译过程

1.解析

解析步骤又可以拆分成 2 个小步骤:

  • 词法分析,将 JavaScript 代码解析成一个个的令牌(Token);
  • 语法分析,将令牌组装成一棵抽象的语法树(AST)。

下面是一段简单的代码,声明了一个字符串变量并调用函数 console.log 进行打印。

var name = 'web'
console.log(name)

通过词法分析会对这段代码逐个字符进行解析,生成类似下面结构的令牌(Token),这些令牌类型各不相同,有关键字、标识符、符号、字符串。

Keyword(var)
Identifier(name)
Punctuator(=)
String('web')
Identifier(console)
Punctuator(.)
Identifier(log)
Punctuator(()
Identifier(name)
Punctuator())

语法分析阶段会用令牌生成类似下面结构的抽象语法树,生成树的过程并不是简单地把所有令牌都添加到树上,而是去除了不必要的符号令牌之后,按照语法规则来生成。抽象语法树如图.

你可能感兴趣的:(前端进阶学习笔记)