JavaScript练习题 全局变量 局部变量 作用域

前沿:大家好我是阿飞本次 任何简单的事情都可以复杂化,本次让我们来做下搞事情的练习题吧

例题1:
var a = 1; 
	function fn1(){		
		var a = 2; 
		alert(a);	//2
	}
	fn1();
	alert(a);   //1
	分析:局内的优先打印变量 局外的打印局外变量 

例题2:
var a = 1;
	function fn1(){
		alert(a);	//1	
		a = 2;			
	}
	fn1();
	alert(a);   //2
	分析:因为都是全局变量 所以按照解析顺序从上到下

例题3:
var a = 1;
	function fn1(a){  //由于没有实参传入,此刻的形参a默认undefined
		alert(a);  // undefind		
		a = 2;     // 此刻因为形参=a 所以a变为局内变量
	}
	fn1();
	alert(a);  //1
	分析:形参使函数内的全局变量变局部。

例题4:
var a = 1;
	function fn1(a){
		alert(a);	//1   通过实参传给形参 得到a=1
		a = 2;		// 形参使之变为局内
	}
	fn1(a);
	alert(a);   // 1 

例题5:
function fn1(a){   //由于没有实参传入,此刻的形参a默认undefined
		alert(a);	//undefined
		a = 2;  //此刻因为形参=a 所以a变为局内变量
	}
	fn1();

	alert(a); 	//全局变量无法获取到局部变量 此刻全局变量又没有定义声明 所以报错

例题6:
var a = 1;
	function fn1(a){
		alert(a);	//1			
		a = 2;
		alert(a);   //2
	}
	fn1(a);
	alert(a);   //1  全局无法获取局内 

只是一个练习而已,搞不懂也没关系。因为本来就不推荐在函数内用全局变量。=.=

原文地址:https://www.cnblogs.com/anduyinglufei/p/7442267.html