作用域、作用域链

作用域

  1. 理解
    就是一块"地盘", 一个代码段所在的区域
    它是静态的(相对于上下文对象), 在编写代码时就确定了
  2. 分类
    全局作用域
    函数作用域
    没有块作用域(ES6有了)
  3. 作用
    隔离变量,不同作用域下同名变量不会有冲突

作用域与执行上下文

  1. 区别1
    全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时
    全局执行上下文环境是在全局作用域确定之后, js代码马上执行之前创建
    函数执行上下文环境是在调用函数时, 函数体代码执行之前创建
  2. 区别2
    作用域是静态的, 只要函数定义好了就一直存在, 且不会再变化
    上下文环境是动态的, 调用函数时创建, 函数调用结束时上下文环境就会被释放
  3. 联系
    上下文环境(对象)是从属于所在的作用域
    全局上下文环境==>全局作用域
    函数上下文环境==>对应的函数使用域

作用域链

  1. 理解
    多个上下级关系的作用域形成的链, 它的方向是从下向上的(从内到外)
    查找变量时就是沿着作用域链来查找的
  2. 查找一个变量的查找规则
    在当前作用域下的执行上下文中查找对应的属性, 如果有直接返回, 否则进入上一级作用域,在上一级作用域的执行上下文中查找对应的属性, 如果有直接返回, 否则进入本作域的上一级作用域, 直到全局作用域, 如果还找不到就抛出找不到的异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值