JS -- 作用域、作用域链以及延长作用域链的方法

本文详细探讨了JavaScript中的作用域概念,包括全局作用域、局部作用域和块级作用域,并介绍了作用域链的工作原理。此外,还讨论了如何通过try-catch语句和with语句来延长作用域链,以及这些机制对变量查找的影响。
摘要由CSDN通过智能技术生成

作用域

作用域就是变量的有效范围。 在一定的空间里可以对数据进行读写操作,这个空间就是数据的作用域

1、全局作用域: 不在函数内部或者大括号里的就是是全局作用域,全局作用域下声明的变量可以在程序的任意位置访问
2、局部作用域:ES6之前,函数作用域就是局部作用域,在函数内部可访问到,而对于函数外部是无法访问的。
3、块级作用域:ES6 之后,凡是代码块就可以划分变量的作用域,叫做块级作用域

作用域链

当需要使用一个变量的时候,首先会在当前作用域去寻找,如果找不到,就去它的父级作用域找,以此类推,形成作用域链。

所以我们可以得知:
* 作用域链前端始终都是当前执行的代码所在环境的变量对象
* 作用域链中的最后一个对象始终都是全局执行环境的变量对象

如何延长作用域链?

1、try - catch 语句的 catch 块;会创建一个新的变量对象,包含的是被抛出的错误对象
的声明
2、with 语句。with 语句会将指定的对象添加到作用域链中。

	var person = {
   
		
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值