关闭

JS的全局变量与局部变量

标签: js全局变量局部变量
277人阅读 评论(0) 收藏 举报
分类:

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>




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:100364次
    • 积分:1337
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:91篇
    • 译文:0篇
    • 评论:3条