function a() { console.log(1); } (function() { if (false) { function a() { console.log(2); } } console.log(typeof a); a(); })()
因为立即执行函数里面有函数 a,a 会被提升到该函数作用域的最顶端,但是由于判断条件是 false,所以不会进入到条件语句里面, a 也就没有值。所以 typeof 打印出来是 undefined, 而后面在调用方法,肯定就会报错
原创文章,作者:czhdawn,如若转载,请注明出处:https://www.czhdawn.cn/archives/4996