js_全局变量和局部变量重名,并带有变量声明提升

匿名 (未验证) 提交于 2019-12-03 00:34:01

全局变量和局部变量重名,并带有变量声明提升

一、定义全局变量和局部变量,变量名都是age。在函数内部不对局部变量age赋值
var age = 250;//定义一个全局变量age,赋值为250 function testf(){ 	console.log("testf:age="+age);//age是局部变量,因为有变量声明提升,所以age是undefined; 	var age;//定了一个局部变量age,没有赋值。 }

二、定义全局变量和局部变量,变量名都是age。在函数内部对局部变量age赋值

var age = 250;//定义一个全局变量age,赋值为250 function testf(){ 	console.log("testf:age="+age);//age是局部变量,因为有变量声明提升,所以age是undefined; 	var age=300;//定了一个局部变量age,并赋值为300。 	console.log("testf:age="+age);//300 }


-----------------------------------测试代码-------------------------------------

<!DOCTYPE html> <html> 	<head> 		<meta charset="UTF-8"> 		<title></title> 		 	</head> 	<body> 		<input type="button" value="  测试  " onclick ="testf()" />		 	</body> </html> <script type="text/javascript" src="js/tools.js"></script> <script type="text/javascript">  //全局变量和局部变量重名,并带有变量声明提升。  /* var age = 250;//定义一个全局变量age,赋值为250 function testf(){ 	console.log("testf:age="+age);//age是局部变量,因为有变量声明提升,所以age是undefined; 	var age;//定了一个局部变量age,没有赋值。 } */  var age = 250;//定义一个全局变量age,赋值为250 function testf(){ 	console.log("testf:age="+age);//age是局部变量,因为有变量声明提升,所以age是undefined; 	var age=300;//定了一个局部变量age,并赋值为300。 	console.log("testf:age="+age);//300 }  </script> 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!