我正在学习 Scope&Closures 中的 You't Know Js 系列丛书之一中的javascript提升,我了解了提升的工作原理,但是在本示例中它的行为方式不同。
foo(); // "b"
var a = true;
if (a) {
function foo() { console.log( "a" ); }
}
else {
function foo() { console.log( "b" ); }
}
这本书提到输出由于功能的提升和覆盖而应为“ b”,但是在我的浏览器中却是此错误。
Uncaught TypeError: foo is not a function
at <anonymous>:1:1
那么在这种情况下抛出TypeError会发生什么?