Javascript基础知识:范围和提升

时间:2015-10-24 13:57:14

标签: javascript

我遇到过这个片段,我不知道它为什么会这样做。在查看代码下面的答案之前,尝试自己回答这个问题:这个警报会是什么号码?

var foo = 1;
function bar() {
  foo = 10;
  return;
  function foo() {}
}
bar();
alert(foo);

我的猜测是这会警告数字10 ..我错了。它警告1.为什么?我认为“函数foo()”甚至不会被考虑,因为之前有一个return关键字。即使它,它在bar()函数范围内。我假设在背景中有一些提升。有人可以解释一下吗?

0 个答案:

没有答案