函数声明提升
在条件控制语句中的函数声明解释器在编译阶段无法识别并提升,执行阶段才会被声明存在
foo(); // TypeError: foo is not a function
var a = false;
if(a) {
function foo() { console.log("a"); }
} else {
function foo() { console.log("b"); }
}
console.log(foo); // undefined
var a = false;
if(a) {
function foo() { console.log("a"); }
} else {
function foo() { console.log("b"); }
}
foo(); // b
浙公网安备 33010602011771号