如下代码:
function a() {
console.log('1')
}
(function() {
console.log(a);
if(1) {
function a() {
console.log('2');
}
}
})()
运行之后,输出的是undefined。
而去掉 if 条件之后,输出的又是第二个 a 函数
function a() {
console.log('1')
}
(function() {
console.log(a);
// if(1) {
function a() {
console.log(2);
}
// }
})()
知道函数有提升,第二段代码,第二个 a 函数会提升到 console.log(a) 这句代码之前,所以运行输出 第二个 a 函数。
可是第一段代码,就搞不明白为啥会输出 undefined 了。
MMMHUHU
随时随地看视频慕课网APP
相关分类