码迷,mamicode.com
首页 > 编程语言 > 详细

[刘阳Java]_步步窥探JS变量作用域

时间:2018-06-08 14:31:23      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:题目   lan   rip   auth   黄金   ror   IV   define   找不到   

今天的这个文章题目名称甚是让人会突发异想。JS变量作用域是务必需要搞懂的,单从面试过程就会让面试者烧脑壳。所以,我们还是写一篇关于JS变量作用域的技术专题,让所有小伙伴能够借此文章去整理JS的基础学习。说不定很多人会比我理解这方面基础知识有更好地见解

黄金守则第一条: JS没有块级作用域(你可以自己闭包或其他方法实现),只有函数级作用域,函数外面的变量函数里面可以找到,函数里面的变量外面找不到

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus?">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <script>
	var a = 10;
	function m01() {
		alert(a);
	}
	function m02() { // 尝试通过m02方法去改变变量a的值
		var a = 20;
		m01();
	}
	m02();
  </script>
 </head>
 <body>
 </body>
</html>

  技术分享图片

黄金守则第一条原理:因为在方法m02里面定义变量a是局部变量,它不会影响最外面的var a = 10; 的值

黄金守则第二条:在函数里面定义变量 var a = b = 10; 其实a是局部变量,b是全局变量。此程序的坑实在是难以让程序员们接受

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus?">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <script>
	function m01() {
		var a = b = 10;	
	}
	m01();
	// alert(a); 运行这段代码就报错; Uncaught ReferenceError: a is not defined
	alert(b);
  </script>
 </head>
 <body>
 </body>
</html>

技术分享图片

[刘阳Java]_步步窥探JS变量作用域

标签:题目   lan   rip   auth   黄金   ror   IV   define   找不到   

原文地址:https://www.cnblogs.com/liuyangjava/p/9154904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!