fun(); //报错TypeErrorvar a=true;if(a){ function fun() { console.log("1"); } }else{ function fun() { console.log("2"); } }
按书中的说法,由于函数的提升,且不受条件判断控制,应该是输出2的。可是我运行却报错了。
然后我把条件控制去掉,像这样:
fun();//2 function fun() { console.log("1"); } function fun() { console.log("2"); }
果然,输出了2
然后,我把条件语句加上,在最后执行函数,像这样:
var a=true;if(a){ function fun() { console.log("1"); } }else{ function fun() { console.log("2"); } }fun();//1
输出1
谁能解释一下,第一个输出的原理?以及和书上的不一样,是因为浏览器升级了的缘故吗?
qq_慕容0484495
鸿蒙传说
相关分类