在javascript中可以使用var来定义变量也可以不定义直接使用,那么他们有什么区别呢?我们来做个小试验:
var a;
a=1;
alert(a);
b=1;
alert(b);
从上面的运行结果看来似乎是否使用var定义好像没有什么区别,那我们再来做两个试验:
//第一段
var a;
alert(a);
//第二段
alert(b);
上 面两个例子的运行结果,第一个可以执行,输出undefined,我们知道undefined代表该变量的值不存在,但是能执行说明变量存在。而第二个不 可以执行直接报出了javascript错误变量不存在。我们再来看下面的例子:
//第一段
var a
a="a"
alert(window.a)

//第二段
var b
b="b"
alert(window.b)

//第三段
function testC(){
var c
c="c"
}
testC()
alert(window.c)

//第四段
function testD(){
d="d"
}
testD()
alert(window.d)
上面四段的运行结果为:
请看一下例子:
//第一段
window.a="a";
function testA(){
alert(a);
}
testA()
//第二段
window.b="b"
function testB(){
var b
alert(b);
}
testB()
上面的运行结果为:
function test1()
{
if(true){
var x=0
for(var i=0;i<10;i++)
{
x++;
}
}
alert("x="+x);
alert("i="+i);
}
test1()
上面运行结果为:
好了,做了这么多试验,我来总结一下:










上 面两个例子的运行结果,第一个可以执行,输出undefined,我们知道undefined代表该变量的值不存在,但是能执行说明变量存在。而第二个不 可以执行直接报出了javascript错误变量不存在。我们再来看下面的例子:
























- a
- b
- undefined
- d
请看一下例子:













- a
- undefined













上面运行结果为:
- x=10
- i=10
好了,做了这么多试验,我来总结一下:
- 定义变量需要使用var,如果不使用var定义则系统会向上查找,如果前面从来没定义过该变量,则认为该变量是window的属性。
- 平铺的javascript中使用var定义的变量为window的属性
- 在一个function中定义的变量,在该function中后面的代码可以引用。
- javascript中的变量访问不是依靠“{}”来管理的。