一段JS代码如何执行的?

210 阅读1分钟

JavaScript 运行机制

生成 AST 和执行上下文

分词 tokenize 词法分析

将代码拆解为一个个 token——语法上不能再分的字符串

解析 parse 语法分析

将 token 数据根据语法规则转成 AST,如果出现语法错误,则终止并抛出异常。

生成字节码

解释器将 AST 转为字节码

执行字节码

解释器将字节码转为机器码并执行

为什么不直接转为机器码?

在之前版本的 Chrome,是直接转为机器码。但由于存放机器码需要占用大量的内存,不适用于移动端。

JIT 即时编译

如果有些代码被多次执行,则将其编译为高效的机器码