JS的全局变量与局部变量

js中用关键字 var 创建局部变量,通过测试发现

如果在函数体外:

用不用var创建的都是全局变量,挂载在window对象上;

如果在函数体内:

用var的创建的是局部变量,挂载在当前对象上;

不用var的创建的是全局变量,挂载在window对象上。


测试1:

s = "Hello"; //不带var,挂载在window对象上
var o={
	f:function(){
	    s = "JS"; //给全局s重新赋值
	}
    };
document.write(s+'<br>');
o.f();
document.write(s+'<br>');
结果:<span style="white-space:pre">	</span>Hello
<span style="white-space:pre">	</span>JS


测试2:

var s = "Hello"; //带var<span style="font-family: Arial, Helvetica, sans-serif;">,挂载在window对象上</span>
var o={
	f:function(){
	    s = "JS";//给全局s重新赋值
	}
    };
document.write(s+'<br>');
o.f();
document.write(s+'<br>');
结果:<span>	</span>Hello
<span>	</span>JS


测试3:

var s = "Hello"; //带var,挂载在window对象上
var o={
	f:function(){
	    var s = "JS";//带var,挂载在当前对象上
	}
    };
document.write(s+'<br>');
o.f();
document.write(s+'<br>');
结果:<span>	</span>Hello
<span>	</span>Hello

测试3:


var o={
	f:function(){
	    s = "JS"; //创建全局s,挂载在window对象上
	}
    };
//document.write(s+'<br>'); //该句执行结果为undefined,因为还未定义 s
o.f();
document.write(s+'<br>');
结果: <span style="font-family: Arial, Helvetica, sans-serif;">JS</span>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值