我们来看下官方对V8引擎的定义:
简单说一下就是:V8引擎是C++编写的开源引擎,用于Chrome和Node.js
去执行js代码,可以独立运行,也可以嵌入在C++应用程序中
那V8引擎是如何去执行js代码?
- 首先javaScript源代码,会经过
paser模块
,被解析成AST抽象语法树
(因为解释器并不认识javaScript
代码)- 那在转成parse的这个过程中发生了什么呢?其实主要是词法分析和语法分析
词法分析:会把代码分成一个个不能细分的单词(token),这些token组成tokens数组 如const name="foo"
分别是const、name、foo
,这个过程是词法分析,按照单词的构成规则来拆分字符串成单词。我们来看下图 - 语法分析:把 token 进行组装,生成 AST,这个过程是
- 那在转成parse的这个过程中发生了什么呢?其实主要是词法分析和语法分析