猿问

一道js面试题,觉得和变量提升有关

(function(){
a=5;
alert(window.a);
vara=10;
alert(a);
})();
这个先打印出undefined然后是10,为什么呀?
Smart猫小萌
浏览 365回答 2
2回答

繁花不似锦

第一个a=5没用var,它并没有创建变量a,而是向上级作用域找变量a,自然是找不到,所以会创建a,但创建的a是本域的,不是window域(顶级域)的,所以window.a还是undefined.(function(){a=5;alert(a);//==>5alert(window.a);//==>undefinedvara=10;alert(a);//==>10})();
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答