前端百题斩【008】——JavaScript代码的执行过程

440 阅读1分钟

写该系列文章的初衷是“让每位前端工程师掌握高频知识点,为工作助力”。这是前端百题斩的第8斩,希望朋友们关注公众号“执鸢者”,用知识武装自己的头脑。

下面将以V8为例,来阐述一下JavaScript代码的执行过程,其整个过程如下所示:

image-20210515221914597.png

整个过程主要分为以下几个步骤:

  1. 词法分析,该步骤是将一行行的源码拆解成一个个token(token指的是语法上不可能再分的、最小的单个字符或字符串);
  2. 语法分析,其作用是将生成的token数据根据语法规则转换为AST;
  3. 有了AST后,V8就会生成该段代码的执行上下文;
  4. 解释器根据AST生成字节码(字节码是介于AST和机器码之间的一种代码);
  5. 生成字节码之后进行执行阶段,解释器会逐条解释执行。在执行字节码的过程中,如果发现热点代码(例如一段代码被重复执行多次),后台的编译器就会把这段热点的字节码编译为高效的机器码,然后再次执行这段优化的代码时,只需执行编译后的机器码即可,提升代码的执行效率。

1.如果觉得这篇文章还不错,来个分享、点赞吧,让更多的人也看到

2.关注公众号执鸢者,与号主一起斩杀前端百题。