- 什么是变量提升?
先上一段代码:
var num = 10;
function fn(){
console.log(num);
var num = 20;
}
上面结果是输出是10还是20?答案是undefined。为什么?且继续看下一段代码:
function fn(){
var num;
console.log(num);
num = 20;
}
上面结果输出结果也是undefined。其实这段代码和上面那段代码都是等价的。这也就引出了变量提升
的概念了。变量提升是指在函数体内部
声明变量,会把该声明提升至函数体内部的最顶端。需要注意的是:只提升变量的声明,并没有赋值。