1.变量提升
- 变量提升:JavaScript代码在执行过程中,JavaScript引擎把变量和函数的声明部分提升到代码开头的行为。
- 变量提升后,会给变量设置默认值undefined
2. JavaScript代码的执行流程
变量和函数声明在代码中的位置不会改变,而是在编译阶段被JavaScript引擎放入内存中,编译完成后,才会进入执行阶段
- 编译阶段
1.编译阶段得到执行上下文和可执行代码
2.执行上下文存在一个变量环境对象,变量和函数会被存放在此,默认值都被设置为undefined
- 执行阶段
在执行阶段,JavaScript引擎会从变量环境对象中查找自定义的变量和函数