预解析阶段里,除了有检测变量声明是否正常,和解析要开多少空间以外,还有个步骤,就是变量提升与函数提升
变量与函数提升
指的是所有用 var
声明的变量和 function
声明的函数,会把他们的声明语句提前到它所在的作用域最顶端,赋值语句留在原地
let没有提升
console.log(age) // undefined 因为变量提升后,var age会提升到最前面
var age = 99
console.log(age) // 99
预解析阶段里,除了有检测变量声明是否正常,和解析要开多少空间以外,还有个步骤,就是变量提升与函数提升
变量与函数提升
指的是所有用 var
声明的变量和 function
声明的函数,会把他们的声明语句提前到它所在的作用域最顶端,赋值语句留在原地
let没有提升
console.log(age) // undefined 因为变量提升后,var age会提升到最前面
var age = 99
console.log(age) // 99