变量作用域

原创 2016年10月23日 09:16:11
<!DOCTYPE html>
<html>
<head>
	<title>变量作用域</title>
	<meta charset="utf-8">
</head>
<body>
	<script type="text/javascript">
		//1.js变量作用域,内部环境可以使用外部环境的变量和函数,但是外部外部环境不能引用任何内部的变量和函数。
		 var n=111;
     function f1(){
         console.log(n);
     }
     f1(); //111

		function f2(){
		 	var g=222;
		 }
		//2.函数没有调用时候,声明的变量还没有初始化
		// console.log(g);//Uncaught ReferenceError: g is not defined
		f2();
		//console.log(g); //error //函数外部无法读取函数内的局部变量。
		
		 //3.函数内部声明变量的时候一定要有var 否则的话就是就定义了全局变量
		 function f3(){
		 	h=333;
		 }
		 //console.log(h);//Uncaught ReferenceError: g is not defined
		 f3();
		 console.log(h);//333
		//阮一峰的理解 闭包就是能够读取其他函数内部变量的函数。
		//种种原因,我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。那就是在函数的内部,再定义一个函数,然后返回此函数。
		function f4(){
      var p=999;
      function f5(){
       console.log(p); // 999
        }
				return f5;
      }
		alert(f4());//打印f5函数 function f5(){console.log(p); //999 }
		alert(f4);//打印整个f4 function f4(){var p=999;function f5(){console.log(p); // 999}return f5;}
		//alert(p);//Uncaught ReferenceError: p is not defined
		
		//一般我们这样调用
		// var result=f4();
		// result();
		//在上面的代码中,函数f5就被包括在函数f4内部,这时f4内部的所有局部变量,对f5都是可见的。但是反过来就不行,f5内部的局部变量,对f4就是不可见的。这就是Javascript语言特有的"链式作用域"结构(chain scope),子对象会一级一级地向上寻找所有父对象的变量。所以,父对象的所有变量,对子对象都是可见的,反之则不成立。 只要把f5作为返回值,就可以在f4外部使用了。
		//思考 闭包一定要返回函数
	</script>
</body>
</html>

Go 语言变量作用域

Go 语言变量作用域作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明:函数内定义的变量称为局部变量函数外定义的变量称为全局变量函数定义中的...
  • u011225629
  • u011225629
  • 2015年11月29日 15:05
  • 1308

js变量作用域的一些例子

本来想要在“作用域”这个专题上自己总结出一些东西的,结果想了好久都没有形成一个固定的思路,也不想贸然拷贝网上的说法。所以,还是先记录几个容易犯错的小例子,以后再来形成总结吧。1、“变量声明提升”var...
  • VitaLemon__
  • VitaLemon__
  • 2016年09月05日 10:38
  • 734

理解JavaScript的变量,变量作用域,作用域链

JavaScript的变量,变量作用域,作用域链
  • ganyingxie123456
  • ganyingxie123456
  • 2017年03月05日 22:34
  • 665

Python基本语法_变量作用域LEGB

目录目录 软件系统 变量的作用域 高级语言对数据类型的使用过程 作用域的产生 作用域的类型 Llocal局部作用域 Eenclosing嵌套作用域 Gglobal全局作用域 Bbuilt-in内置作用...
  • Jmilk
  • Jmilk
  • 2015年12月10日 01:31
  • 1639

SQL中declare变量的作用域

平时写SQL查询、存储过程都是凭着感觉来,没有探究过SQL的具体语法,一直都是按c#那一套往SQL上模仿,前几天项目中碰到一个问题引起了我对declare定义变量的作用域的兴趣。 大家都知道c#中的...
  • urzalee
  • urzalee
  • 2014年10月25日 16:13
  • 456

注意for循环中变量的作用域

for e in collections: pass在for 循环里, 最后一个对象e一直存在在上下文中。就是在循环外面,接下来对e的引用仍然有效。 这里有个问题容易被忽略,如果在循环之...
  • weizhao1203
  • weizhao1203
  • 2014年11月08日 03:39
  • 1161

shell变量的作用域

http://hi.baidu.com/khwfosjbxkadtze/item/8f346021ddcd7c0976272c57
  • heyustudent
  • heyustudent
  • 2014年05月27日 17:44
  • 757

PHP变量作用域小结

变量是用来存储信息的“容器”,PHP变量中有这几个规则:以$符号开始,后面接着变量的名称;变量名必须以字母或下划线字符开始;变量名只能包含字母数字字符及下划线;变量名区分大小写; 变量作用域是指脚本...
  • ZDX_Y
  • ZDX_Y
  • 2016年06月10日 14:32
  • 4065

python变量及其作用域,闭包

http://blog.csdn.net/pipisorry/article/details/42525939建议参考[Python核心编程2ed.pdf: 11.8 变量作用域]Python 标识符...
  • pipisorry
  • pipisorry
  • 2014年03月23日 16:53
  • 2128

javascript理解之变量作用域与闭包

何为闭包闭包是指能够访问自由变量的函数 (变量在本地使用,但在闭包中定义)。换句话说,定义在闭包中的函数可以“记忆”它被创建时候的环境。函数作用域与声明提前var scope= "global sco...
  • sinat_25127047
  • sinat_25127047
  • 2016年06月12日 17:33
  • 1434
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:变量作用域
举报原因:
原因补充:

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