javaScript中变量的作用域

大兔子大兔子 提交于 2020-02-28 15:24:47

https://www.cnblogs.com/m-chaoyue/p/6768254.html 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javaScript中变量的作用域</title>
<script type="text/javascript">
//javaScript中变量的作用域
//案例1
function fn1(){
	if(true){
		age = 6;
//		console.log(salary); //ReferenceError: salary is not defined
	}
	console.log(age);
	salary = 18;
	console.log(salary + "****");
}

fn1();
console.log(salary + "----");

//参考网页https://www.cnblogs.com/m-chaoyue/p/6768254.html
/*
在js中,变量的定义并不是以代码块作为作用域的,而是以函数作为作用域。也就是说,如
果变量是在某个函数中定义的,那么,它在函数以外的地方是不可见的。但是,如果该变量是定
义在if或者for这样的代码块中,它在代码块之外是可见的。
在js中,术语"全局变量"指的是定义在所有函数之外的变量(也就是定义在全局代码中的变量),与之相
对的是"局部变量",所指的是在某个函数中定义的变量。其中,函
数内的代码可以像访问自己的局部变量那样访问全局变量,反之则不行。
*/
//案例2
function fn2(){
	if(true){
		address = '江西省于都县';
	}
	if(true){
		//这里仍然可以访问到address变量
		console.log(address + '********');
		var hobby = '走路';
	}
	//这里仍然可以访问到address变量
	console.log(address + '-----------');
	//这里仍然可以访问到hobby变量
	console.log(hobby);
}

fn2();

//使用var关键字定义变量和不使用var关键字定义变量的区别
//案例3
function fn3(){
//使用了var关键字定义的变量是局部变量
	var a = 23;
//没有使用var关键字定义的变量是全局变量
	b = 99;
	console.log('我是fn3()函数....', a, b);
}

fn3();
//因为b是全局变量,所以函数外部仍然可以访问到b变量
console.log(b); //99
//因为a是局部变量,所以函数外部是访问不到a变量的
//console.log(a); //ReferenceError: a is not defined
</script>
</head>
<body style="background-color: #CCE8CF;">
<h2 style="color: #cd1636;">javaScript中变量的作用域</h2>
</body>
</html>

 

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