JS声明提升

声明提升

声明提升/预解释是什么?

声明从它们在代码中出现的位置被“移动”到了当前作用域的最上面,这个过程就叫作提升

为什么要存在提升这个事情呢?

其实提升存在的根本原因就是为了解决函数间互相调用的情况

造成变量声明提升的本质原因?

引擎会在解释javascript代码之前首先对其进行编译。编译阶段中的一部分工作就是找到所有的声明,并用合适的作用域将他们关联起来。

声明提升的规则是什么?

  1. 变量的重复声明无用
  2. 函数声明提升优先于变量声明提升
  3. 同名的var声明和函数,var 声明会被忽略掉
  4. 后面的函数声明会覆盖前面的函数声明