第一个属于全局变量,为什么弹不出来?

(function(){

    a=5;
    alert(window.a);
    var a=10;
    alert(a);
})()
阅读 1.8k
3 个回答

变量提升~

你的代码相当于

(function(){
    var a;
    a=5;
    alert(window.a);//window下的a为undefined
    a=10;
    alert(a);
})()

你这都用自执行包封起来了,压根儿没传给window当然也就不会有嘛。

var a =10

因为它变量提升了,你的代码与下面是等价的

(function(){
var a
a=5
alert(window.a)
a=10
alert(a)
})()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题