B005-变量提升
var b =1;
function outer() {
var b = 2
function inner() {
b++;
var b = 3;
console.log(b)
}
inner()
}
outer()
答案
3
解析
首先执行outer(),因为outer 里面的b是重新声明并被赋值的,这里的b为2,
然后走里面的inner方法,由于inner 里面也有个b的声明所以这里面的b跟外面的b是两回事了。就等价于
function inner() { var b; // 此时b为undefined b ++; // 此时b为NaN b = 3 // 此时b为3 }