实例讲解JS中的作用域和作用域链

本文详细解析了JavaScript中的作用域,包括函数作用域、全局作用域以及ES6中的块级作用域。此外,还介绍了作用域链的概念,解释了变量查找的顺序以及执行环境与变量对象的关系。通过实例分析,阐述了内部环境如何通过作用域链访问外部环境,同时提到了延长作用域链的方法,如with语句和try-catch的catch块。最后,作者强调了深入理解这些基础知识对于提升编程技能的重要性。
摘要由CSDN通过智能技术生成

一 JS的作用域

在ES5中,没有块级作用域,JS的作用域分为函数作用域和全局作用域两种


在上面的代码中,变量color存在于if语句中,但是在if语句的外面能正确打印出color的值,所以color变量存在于全局作用域中。


在这个例子中,同时打印color1和color2变量,因为color1存在于全局变量中,所以color1的值能正确打印,而color2变量是在函数getColor中,所以在函数外面打印时报错,这是因为color2的作用域是getColor函数作用域。

在ES6中,新增了let和const,这两个类型的变量只存在于块级作用域中,并且不存在变量提升


在if语句中将 var 换成 let ,在if语句外面打印变量color则报错,因为用let和const声明的变量作用域是块级作用域if。

二 JS中的作用域链</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值