(function(){
a = 5;
alert(window.a);
var a = 10;
alert(a);})();
这个先打印出 undefined 然后是10,为什么呀?
慕莱坞森
浏览 1258回答 3
3回答
烙印99
这题目有点神奇 不只是变量提升 是变量提升的应用了。。正解是 var a = 10 在预编译的时候会在函数里进行变量提升,这个大家都回答到了,然后 变量提升相当于进行了var a 操作,然后a =10 这条代码解释执行的时候。。变成了赋值操作,不再进行隐式生命全局变量的操作,导致window.a为undefined,出这道题的人真的机智!!!!!!!