作用域和作用域链

var a = 10;
function f1(x,y){
	//var b = 5;
	b = 5;
	console.log(a);
}
f1();
console.log(b);  此时b输出5,因为b=5为隐式的全局变量
在函数外面使用var 声明的变量都是全局变量,作用范围是程序运行的地方.
全局作用域(函数除外)


函数的形参是局部变量
在函数内部,不使用var 定义的变量,叫隐式全局变量
局部作用域(函数体内的执行环境)



function fn(a){
	a = 100;
	var b = 200;
}  //因为这里函数没有调用,所以为激活,里面的东西不会执行
console.log(a);///所以会报错
console.log(b);/报错  局部变量 


做函数题时记得想返回值,调用,切记!


/
当访问一个变量时,会先c从本作用域出去找变量,若找不到则向上一级作用域中去找,一次类推,就形成了一个作用域链
例:
var a = 100;
var b = 200;
function f1(){
	var a = 4;
	var b = 3;
	console.log(a);//结果为4
	console.log(b);/结果为3
	function f2(){
	   var a = 1;
	   console.log(a);1
	   console.log(b);3
	   function f3(){
		console.log(a); 1
		console.log(b);/3
		}
	    f3();	
	}
	f2();
}
f1();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值