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、变量一般用var 声明 2、全局变量不能用var 声明,用var 声明的变量是局部变量 3、全局变量可以在声明的函数外调用,局部变量不能再函数外调用。 代码说明: ...
  • xuehyunyu
  • xuehyunyu
  • 2017年06月11日 10:32
  • 341

js的局部变量和全局变量的定义形式举例

无标题文档 var n=10;m=100;//全局变量 任何地方都可以使用 function demo(){ var i=10;//局部变量 只能在当前函数中使用 ...
  • u012110719
  • u012110719
  • 2015年09月02日 00:28
  • 1368

面试题之JavaScript 的全局变量与局部变量

先看一道面试题问:如下代码结果是? var a = 100 ; function test() { alert(a) ; var a = 10 ; alert(a) ;...
  • wenteryan
  • wenteryan
  • 2016年05月23日 11:18
  • 1661

js局部变量和全局变量的区别

var的规则是: 使用var声明变量就是内部变量, 否则就是先调用全局变量, 不管多少层函数. this的规则是: method函数里的this永远指向自身, 普通函数的this永远指向DOMW...
  • web_note
  • web_note
  • 2016年10月11日 19:02
  • 537

JS局部变量改变全局变量

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

局部变量和全局变量的区别

局部变量可以与全局变量重名,但是局部bianl
  • cgl1079743846
  • cgl1079743846
  • 2014年05月29日 09:20
  • 38156

JS中局部变量能修改全局变量吗?

JS中局部变量能修改全局变量吗?  Javascript 专业回答 pieryon  高级软件开发工程师 互联网IT开发部 2015-07-18 20:59 一、...
  • evilcry2012
  • evilcry2012
  • 2016年04月21日 17:40
  • 476

JS中全局变量和局部变量

全局变量,作用域为所属的整个程序。 定义形式: 在函数外定义。 在函数内定义,但是不加 var 声明。 使用 window.变量名 的形式定义。(注:兼容性未知) 使用 windo...
  • Mr_28
  • Mr_28
  • 2017年01月10日 23:03
  • 2691

javascript中局部变量与全局变量

html> html lang="en"> head> meta http-equiv="content-type" content="text/html;charset=UTF-8"> ...
  • pangqiandou
  • pangqiandou
  • 2016年11月10日 13:56
  • 394

js中的局部变量和全局变量

全局变量:在任何地方都可以使用 局部变量:只能在当前函数中使用 这里直接来看事例代码: 事例1: Title var a=10;//全局变量 在任何地方...
  • bymyself11
  • bymyself11
  • 2016年04月04日 17:44
  • 142
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS的全局变量与局部变量
举报原因:
原因补充:

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