关于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);
}
表示变量自动成为全局变量,就相当于你在方法外面已经定义了一个全局变量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);
}
相关文章推荐
- 关于变量为Javascript关键字的问题
- PHP中关于在函数内引用全局变量的问题
- 关于进程和线程对于全局变量共享的问题学习总结
- javascript 关于局部变量和全局变量
- 关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题
- 关于全局变量赋值的问题
- JavaScript中全局变量的问题
- 解决skia静态库中关于jpeg/png编码解码器的全局变量的问题
- 关于全局变量不能随便定名的问题
- 一个关于全局变量位置的问题
- 转载:关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题
- 关于const记录类型全局变量赋初值的问题
- 关于ucos全局变量定义的问题
- 关于多线程编程中与全局变量通信的问题
- 构造函数的职责 -- 关于全局变量的构造函数里执行太多复杂操作导致的问题
- javascript中运用闭包和自执行函数解决大量的全局变量问题
- javascript中运用闭包和自执行函数解决大量的全局变量问题
- 关于线程并发访问全局变量问题
- 关于头文件定义全局变量等问题
- 关于全局变量和函数,在其他类中调用问题,extern关键字