我遇到过这个片段,我不知道它为什么会这样做。在查看代码下面的答案之前,尝试自己回答这个问题:这个警报会是什么号码?
var foo = 1;
function bar() {
foo = 10;
return;
function foo() {}
}
bar();
alert(foo);
我的猜测是这会警告数字10 ..我错了。它警告1.为什么?我认为“函数foo()”甚至不会被考虑,因为之前有一个return关键字。即使它,它在bar()函数范围内。我假设在背景中有一些提升。有人可以解释一下吗?