1.作用域
1.1 定于
作用域( scope)规定了变量能够被访问的“范围”,离开了这个“范围″变量使不能被访问
1.2 分类
1.2.1局部作用域
1.2.1.1 函数作用域
在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。
1.2.1.2 块作用域
在 Javascript中使用仆}包裏的代码称为代码块,代码块内部声眀的变量外部将【有可能】无法被访问。
1.2.2全局作用域
<script>标签和js文件的【最外层】就是所谓的全局作用域,在此声明的变量在函数内部也可以被访问。全局作用域中声明的变量,任何其它作用域都可以被访问
1.3 作用域链
作用域链本质上是底层的变量查找机制。
- 在函数被执行时,会优先查找当前函数作用域中查找变量
- 如果当前作用域查找不到则会依次逐级查找父级作用域直到全局作用域
1.4 闭包
概念:一个函数对周围状态的引用捆绑在一起,内层函数中访问到其外层函数的作用域
简单理解:闭包=内层函数+外层函数的变量
先看个简单的代码:
1.5 变量提升
2.函数
2.1 函数的参数