例子1:
var v = "hello!";
(function(){
alert(v);
var v = "hello!";
})()
弹出undefined;
执行的顺序:
先定义的是外部变量 V,在函数里面又定义了 内容变量V,alert(v)执行的时候,实际是先在函数内创建变量v
例子2
(function(){
a=1;
alert(window.a);
var a = 2;
alert(a);
})()
a=1;
alert(window.a);
var a = 2;
alert(a);
})()
这个先弹出undefined,然后是2;
解释:
a=1,没有var,这是js中的 隐式全局变量,可以通过this 和 window进行访问;
执行的顺序:
var a = undefined;
(function(){
var a;
a =2;
alert(window.a);
a=2;
alert(a);
})