什么是作用域、作用域链

什么是作用域

作用域作用:一个变量的可用范围
本质:其实作用域是内存中保存变量的对象
为什么使用作用域:防止不同范围之间的变量互相污染。
全局作用域:专门保存全局变量的区域/存储空间
什么是全局变量:在函数function之外用var创建的变量
特点:随处可用,可反复使用
函数作用域:专门保存仅函数内可用的局部变量的区域/存储空间
什么是局部变量:2种
在函数内用var创建的变量
形参变量
特点:仅函数内部可用,不可重用

i.每个函数在定义时,函数对象上都包含一个"作用域链"
作用域链中第一个格子暂时空
作用域链中第二个格子指向window
ii. 当调用函数时,会临时创建本次函数调用的函数作用域对象
iii. 函数调用过程中: 函数总是优先使用作用域链中离自己近的函数作用域对象中的局部变量。除非离自己近的函数作用域对象中,没有需要的局部变量,才被迫去全局window中查找变量使用!——就近原则!
iv. 函数调用后,自动释放作用域链中离自己近格子中的地址,等效于释放了本次函数调用所使用的函数作用域对象。等效于将本次使用的所有局部变量一起释放了!
——所以,所有局部变量都不可重用!

什么是作用域链: 函数对象中保存函数调用时所有可用的作用域对象的链式结构
作用域链保存着一个函数可用的所有变量(局部变量和全局变量)
作用域链控制着变量的使用顺序(先局部后全局!)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值