您的位置:首页 > Web前端 > JavaScript

关于JavaScript的全局变量的问题

2014-09-17 13:15 148 查看
在定义变量的时候不加var,则

表示变量自动成为全局变量,就相当于你在方法外面已经定义了一个全局变量a,即

function test()

{

a="hello";

alert(a);

alert(window.a);

}

相当于

...

var a;

function test(){

a="hello"; //调用的都是全局变量

alert(a);

alert(window.a);

}

...

但是如果你有一个全局变量a,你在方法里面又定义了一个同名的局部变量a,那么只要是在这个方法里面,a就是指局部变量;如果全局变量a并没有初始化,当你用window.a来调用全局变量a时自然就会是undefined,这就是你加上后三行出现undefined的原因。



function test()

{

a="hello";

alert(a);

alert(window.a);

var a = "what";

alert(a);

alert(window.a);

}

就相当于

var a;

function test()

{

a="hello"; //这里a是局部变量

alert(a);

alert(window.a); //全局变量a并没有初始化,所以是undefined

var a = "what";

alert(a);

alert(window.a);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: