如下代码: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 了。
添加回答
举报
0/150
提交
取消