JS的全局变量与局部变量

原创 2015年07月10日 15:33:41

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>




相关文章推荐

JS局部变量改变全局变量

按钮1 按钮2 按钮3 这里是三个按钮,点击按钮1会做一些事,再次点击又会做另外一些事(比如打开关闭) 由于在同一个按钮上绑定时间,这个时候就需要有个标志,用于判断...

js----全局变量和局部变量部分讲解

js—-全局变量和局部变量部分讲解以此文作为自己学习的一个总结。关于全局变量和局部变量的一句简单的定义:在函数外声明的变量都为全局变量,在函数内声明的为局部变量。 一、局部变量和全局变量重名会覆盖...

谈谈JS的全局变量跟局部变量

今天公司一个实习小妹子问我两段js代码的区别:[javascript] view plain copy print?   var a = “Hello”;   function test(){    ...

javascript基础笔记(八)之js的全局变量和局部变量

js的全局变量和局部变量 全局变量:在script标签里面定义一个变量,这个变量在页面js 部分都可以使用 ...

Javascript:谈谈JS的全局变量跟局部变量(转zyz511919766)

今天公司一个实习小妹子问我两段JS代码的区别: var a = "Hello"; function test(){ var a; alert(a); a = "...

Web前端面试笔试题2——JS(1):函数调用(局部变量/全局变量)

1、函数调用——局部变量/全局变量 案例1-1:fun(a)函数有传参,即可更改“局部变量” var a=100; function fun(a){ a++; console.lo...
  • zxy9602
  • zxy9602
  • 2017年04月15日 11:10
  • 432

谈谈JS的全局变量跟局部变量

今天公司一个实习小妹子问我两段JS代码的区别: [javascript] view plaincopy "text/javascript">   var a = "Hello";   fun...

Javascript:谈谈JS的全局变量跟局部变量

今天公司一个实习小妹子问我两段JS代码的区别: var a = "Hello"; function test(){ var a; alert(a); a = ...

js 全局变量 局部变量 隐式声明 显式声明,作用域

JS 中使用 var 声明变量,也可以不使用var 这样定义的就是全局变量,js解释器执行时首先在全局构建一个全局对象,我们写的全局变量就是为这个全局对象做准备的,就是为了该对象的属性读取,可以使用t...

[转]Javascript:谈谈JS的全局变量跟局部变量

今天公司一个实习小妹子问我两段JS代码的区别: [javascript] view plain copy "text/javascript">    ...
  • zfm1217
  • zfm1217
  • 2017年05月19日 11:01
  • 84
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS的全局变量与局部变量
举报原因:
原因补充:

(最多只允许输入30个字)