在开发过程中我们不需要理解代码执行的过程,但是理解代码执行的过程对于我们理解JavaScript语言和代码运行机制非常重要,执行JavaScript代码主要分为以下两个阶段:
- 代码预编译阶段
- 代码执行阶段
预编译阶段是前置阶段,这一阶段会由编译器将代码编译成可以执行的代码。在其他语言中,编译是非常复杂的,涉及分词、解析、代码生成等过程。这里预编译是JavaScript中的独特概念,虽然JavaScript是解释性语言,编译一行执行一行,但是在执行前引擎会做好预先准备工作。
在执行阶段就是执行代码的逻辑,和执行上下文的阶段。
在编译阶段我们需要注意一些细节问题:
- 进行变量声明
- 对变量声明进行提升,但是值位undefined。
- 对所有非表达式的函数声明进行提升。