你不了解的JS笔记 - 第一部分 - 提升
以下是读完《你不了解的JS》第一部分第四章后整理的笔记
提升
引擎会在解释JS代码之前首先对其进行编译,编译阶段中的一部分工作就是找到所有的声明,并用合适的作用与将它们关联起来,因此,包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理
只有声明本身会被提升,而赋值和其他运行逻辑会留在原地
每个作用域都会进行提升操作
函数声明会被提升,但是函数表达式却不会被提升
即使是具名的函数表达式,名称标识符在赋值之前也无法在所在作用域中使用
函数优先
函数声明会被提升到普通变量之前,函数声明会首先被提升,然后才是变量
尽管重复的var声明会被忽略掉,但出现在后面的函数声明还是可以覆盖前面的
一个普通块内部的函数声明通常会被提升到所在作用域的顶部,应该尽量避免在块内部声明函数

浙公网安备 33010602011771号