为了账号安全,请及时绑定邮箱和手机立即绑定

关于JavaScript的作用域链

标签:
JavaScript

1.什么是作用域?

  作用域就是变量与函数的可访问范围,JavaScript的变量作用域有两个范围,全局作用域和局部作用域。在函数定义之外声明的变量是全局变量,它的值可以在整个程序中访问和修改。在函数定义内声明的变量是局部变量,每当执行函数时,都会创建和销毁该变量,并且无法通过函数之外的任何代码访问该变量。

2.局部作用域

webp

image.png


  因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。局部变量在函数开始执行时创建,函数执行完成后局部变量会自动销毁。

3.全局作用域

webp

image.png


全局变量有全局作用域,可以在任何地方进行使用。
如果变量在函数内部没有进行声明,那么该变量默认为时全局变量。
例如:

function partScope(){
n = "jirengu";  //n为全局变量
}

4.作用域链

  当查找一个变量的时候,会先从上下文的变量对象中查找,如果没有找到,就会从父级执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象。这样由多个执行上下文的变量对象构成的链表叫做作用域链。


webp

image.png


  函数在执行的过程中,先从自己内部找变量如果找不到,再从创建当前函数所在的作用域去找, 以此往上。注意找的是变量的当前的状态。



作者:柳岸花茗
链接:https://www.jianshu.com/p/61bca5d085dd


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消