Javascript(八)作用域

ES5中作用域

1.在es5中没有函数就不谈作用域。
2.定义:一个标识符,在哪些写代码的地方能够使用,这写地方就是这个标识符能够起作用的区域,称为作用域。
3.作用域又分全局作用域和局部作用域。
局部作用域:函数内部的变量,只能在函数内部访问。函数里面能访问里面和函数外面的标识符,但是函数外面不能访问里面的标识符。
eg:

 var a=100
			 
			 function  fn() {
			 	//声明提前var b
			 	console.log(b)//undefined,执行时b还未被赋值但已经声明提前了
			 	var b=20
			 	console.log(a)//100,可以访问外部变量
			 	c=20
			 }
			 
			 fn()
			 console.log(b)//报错不能访问函数里面的变量
			 console.log(c)//报错

4.函数的调用: 是去它声明的作用域下执行代码,不是去调用的作用域执行代码
eg:

             var a=30
			 function fn () {
			 	var a=200
			 	return {say:function() {
			 		console.log(a)
			 	}}
			 }
			 var a=20
			 var obj=fn()
			 obj.say()//虽然是obj调用,但是时去它声明的作用域执行代码,
			 所以a在say作用域找没有a,再去它的函数fn作用域找得到a=200
			

当一个作用域内有相同的标识符
方法:同一个作用域内有相同的标识符声明提前:
1.变量声明
2.形参声明
3.形参赋值(实参给形参上数据)
4.函数声明
eg:

//1.变量声明提前var a
  2.形参声明var a
  3.形参赋值var a=1
  4.函数声明function a(){}
  取数据的时候取最后一个数据
function fn (a) {                                                                   
	 	console.log(a) //打印函数funtion a(){}                            
	 	var a=2             //给变量a赋值2                       
	 	function a () {                             
	 		
	 	}
	 	console.log(a)//a=2
	 }
	 fn(1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值