前端高频面试题!!! JavaScript中的作用域以及作用域链

39 阅读1分钟

javascript中的作用域和作用域链

介绍:变量使用使用区间的, 变量不是说声明之后在哪里都可以用, 他有一个使用的范围, 我们把这个范围叫做 作用域

  1. 作用域的分类

    1. 全局作用域
      1. js提供了window对象(全局) 定义的变量在任何时候都可以访问
      2. 缺点是容易造成变量污染 避免使用
    2. 局部作用域
      1. 也叫函数作用域,在当前函数定义的变量,在函数内容可以使用,在函数外调用会报错
    3. 块级作用域
      1. ES6新增的作用域 通过let 和const 声明

      2. 触发块级作用域条件

        1. 在函数内部
        2. 在一个代码块内部由花括号包裹
        3. 在花括号外调用会报错
      3. let 基本可以替换 var的使用 let 没有变量提升 不能重复声明

  2. 作用域链

    1. 在javascript使用一个变量会先在当前作用域找,如果找不到就会向上一级作用域找,一直找到全局作用域(window)找不到就会报错,
    2. 如果俩个变量重名 会先在当前作用域的使用
    3. 注意作用域只能从当前往上一层查找,不能往下找