在条件控制语句中的函数声明解释器在编译阶段无法识别并提升,执行阶段才会被声明存在
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
标签:function,console,log,提升,false,foo,声明,函数 From: https://www.cnblogs.com/ran2022/p/17323494.html