猜猜下面的代码会输出什么东东?
var foo = 1;
var foobar = function() {
console.log(foo);
var foo = 2;
};
foobar();
如果你知道局部变量这个概念的话,你可能会觉得这个输出是1或者foo is not defined。
如果你还知道JS里有变量提升这个概念的话,你可能觉得这个输出会是2。
如果你还知道JS里的变量提升只能提升变量,但不能把值也带过去的话,你会觉得这个输出会是undefined。
对啦,就是undefined。
1560

被折叠的 条评论
为什么被折叠?



