javascript使用感受-变量定义

在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)
上面四段的运行结果为:
  1. a
  2. b
  3. undefined
  4. d
由上面的例子我们可以看出,在顺序执行时,用var定义的变量与直接赋值的变量都为window的属性。都可以直接用window.来引用。而在一个function中用var定义的变量为局部变量,在这个function以外的地方无法访问。在function中直接使用一个变量相当于访问window对象下的属性。
请看一下例子:
// 第一段
window.a = " a " ;
function  testA() {
alert(a);
}

testA()
// 第二段
window.b = " b "
function  testB() {
var b
alert(b);
}

testB()
上面的运行结果为:
  1. a
  2. undefined
当局部变量和window属性同名的时候,优先使用局部变量。在java中局部变量在“{}”中起作用,里面的可以访问外面的反之则不行,那么在javascript中是不是这样的呢?我们做下面的试验:

function  test1()
{
    
if(true){
        
var x=0
        
for(var i=0;i<10;i++)
        
{
            x
++;
        }

    }

    alert(
"x="+x);
    alert(
"i="+i);
}

test1()


上面运行结果为:
  1.     x=10
  2.     i=10
由此结果我们看出当“{}”结束以后我们仍然可以访问变量,程序段的结束并不会影响变量的访问。

好了,做了这么多试验,我来总结一下:
  1. 定义变量需要使用var,如果不使用var定义则系统会向上查找,如果前面从来没定义过该变量,则认为该变量是window的属性。
  2. 平铺的javascript中使用var定义的变量为window的属性
  3. 在一个function中定义的变量,在该function中后面的代码可以引用。
  4. javascript中的变量访问不是依靠“{}”来管理的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值