写该系列文章的初衷是“让每位前端工程师掌握高频知识点,为工作助力”。这是前端百题斩的第8斩,希望朋友们关注公众号“执鸢者”,用知识武装自己的头脑。
下面将以V8为例,来阐述一下JavaScript代码的执行过程,其整个过程如下所示:
整个过程主要分为以下几个步骤:
- 词法分析,该步骤是将一行行的源码拆解成一个个token(token指的是语法上不可能再分的、最小的单个字符或字符串);
- 语法分析,其作用是将生成的token数据根据语法规则转换为AST;
- 有了AST后,V8就会生成该段代码的执行上下文;
- 解释器根据AST生成字节码(字节码是介于AST和机器码之间的一种代码);
- 生成字节码之后进行执行阶段,解释器会逐条解释执行。在执行字节码的过程中,如果发现热点代码(例如一段代码被重复执行多次),后台的编译器就会把这段热点的字节码编译为高效的机器码,然后再次执行这段优化的代码时,只需执行编译后的机器码即可,提升代码的执行效率。
1.如果觉得这篇文章还不错,来个分享、点赞吧,让更多的人也看到
2.关注公众号执鸢者,与号主一起斩杀前端百题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。