条件语句中的JS提升不会给出预期的输出

时间:2018-06-02 17:19:10

标签: javascript hoisting

我正在读“你不懂JS”这本书,我读了这篇文章: enter image description here

作者的意思是这些foo函数将在全局级别提升,因为条件语句无法在JS中创建自己的作用域。所以预期的行为就是我会打印出来。

但结果是错误: “未捕获的TypeError:foo不是一个函数     at:1:1“

但是,如果我这样做:

var a = true;
if (a) {
  function foo() { console.log( "a" ); }
}
else {
  function foo() { console.log( "b" ); }
}

然后调用函数我会得到结果“a”?

0 个答案:

没有答案