js的变量作用域,局部变量,全局变量,全局和局部变量重名

一、变量的作用域:

  变量起作用的范围,变量在啥地方能用。那么啥地方就是它的作用域。


二、变量作用域分为:局部变量和全局变量。


1、局部变量:

//就是定义在函数内部的变量(内部变量),局部变量起作用的范围是函数内部。
//局部变量就是私有的变量

2、全局变量:

//就是定义在函数外部的变量(外部变量),
//全局变量起作用的范围是当前文件中的所有函数。
//全局变量就是所有函数共享的变量

三、代码示例

1、局部变量

function testf1(){
	var age = 100;//定义了一个局部变量age;age只能在函数testf1内部使用,其它函数不能使用
	console.log("testf1:age="+age);
	console.log("testf1:name="+name1);//出错:name1 is not defined;
}

function testf2(){
	var name1 = "张三疯";//定义了一个局部变量name1;name1只能在函数testf2内部使用,其它函数不能使用
	console.log("testf2:age="+age);//出错:
	console.log("testf2:name="+name1);
}

function testf(){
	console.log("testf:age="+age);//出错
	console.log("testf:name="+name1);//出错:
	testf1();
	//testf2();
}

2、全局变量

var age = 250;//定义一个全局变量age,赋值为250;

function testf(){
	testf1();
	testf2();
	console.log("testf:age="+age);//251
}

function testf1(){
	console.log("testf1:age="+age);	//250
}

function testf2(){
	age = 251;
	console.log("testf2:age="+age);//251
}

3、全局变量和局部变量重名:

就近原则:当前全局变量和局部变量重名时,在函数内部使用的是局部变量

var age=250;
function testf(){
	var age = 10;//声明,并赋值;
	console.log("testf:age="+age);//age是局部变量,因为testf函数内部定义了age。10;
	testf1();
}

function testf1(){
	console.log("testf1:age="+age);age是全部变量,因为testf1函数内部没有定义age。250;
}



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




	
		
		
		
	
	
				
	




你可能感兴趣的:(js的变量作用域,局部变量,全局变量,全局和局部变量重名)