javascript中的作用域和作用域链
介绍:变量使用使用区间的, 变量不是说声明之后在哪里都可以用, 他有一个使用的范围, 我们把这个范围叫做 作用域
-
作用域的分类
-
全局作用域
- js提供了window对象(全局) 定义的变量在任何时候都可以访问
- 缺点是容易造成变量污染 避免使用
-
局部作用域
- 也叫函数作用域,在当前函数定义的变量,在函数内容可以使用,在函数外调用会报错
-
块级作用域
-
ES6新增的作用域 通过let 和const 声明
-
触发块级作用域条件
- 在函数内部
- 在一个代码块内部由花括号包裹
- 在花括号外调用会报错
-
let 基本可以替换 var的使用 let 没有变量提升 不能重复声明
-
-
-
作用域链
- 在javascript使用一个变量会先在当前作用域找,如果找不到就会向上一级作用域找,一直找到全局作用域(window)找不到就会报错,
- 如果俩个变量重名 会先在当前作用域的使用
- 注意作用域只能从当前往上一层查找,不能往下找