Javascript 变量的作用域-浅浅谈

评论(0)

说浅浅谈,因为本人的 Javascript 知识实在是很匮乏,连浅谈都算不上,但学习过程中总有些心得在此总结、备忘

变量的作用域,不仅在Javascript 中,在其他程序语言中也算是一个要点,至少我是这么觉得的。

说明

大概分以下几种情况【以下面例子为前提】

  1. 如变量a定义在最外层即为全局变量
  2. 最外层的b同理,也是全局变量,但在fun_b中定义了局部变量所以会调用局部变量
  3. 在函数内部定义变量,用 var 则为局部变量,不用var则为全局变量,但前提是函数要运行过

作用域演示代码

	<script type="text/javascript" charset="utf-8">
		var a = "全局a";
 
		var b = "全局b";
 
		function fun_a (){
			alert ("a目前是"+a);
		}
 
		function fun_b (){
			var b = "局部b";
 
			alert ("b目前是"+b);
		}
 
		fc=function give_c (){
			c = "不带 var 我就是全局c";
		}();
 
		function fun_c(){
			alert("c目前是"+c);
		}
	</script>
	<form action="index_submit" method="get" accept-charset="utf-8">
		   <p><input type="button" onclick="fun_a ()" value="提示a的值"/></p>
		   <p><input type="button" onclick="fun_b ()" value="提示b的值"/></p>
		   <p><input type="button" onclick="fun_c ()" value="提示c的值"/></p>
	</form>

作用域演示

直接点击按钮看效果。

总结

当然我们可以这么理解,javascript 的变量作用域,当我们需要使用一个变量时,会先到当前局部搜索变量,如果没有,则会到上级寻找该变量,如果上级没有该变量则到上上级,直至寻直全局。