一般开发中,作用域可分为三中作用域,每种有自己的优缺点:
- 全局作用域:
- 优点:全局存在,用完了还在反复使用,每个域每个函数都能访问
- 缺点:也许因为访问没有限制,很容易被修改导致全局污染
- 局部作用域:
- 优点:只有局部能访问,不会被污染,不容易被篡改
- 缺点:只能用一次,用完之后,下次再来,就是新的了
- 局部作用域有2种:
- 1种是函数内 var let const 声明变量
- 2种是函数形参接受参数
- 不是所有{}都是产生块级作用域,只有函数function{}
- ES6 let const 声明的变量也是自带块级作用域
- 闭包作用域:
- 优点:局部使用,且用完还在,不会被销毁
- 缺点:过多使用,会导致内存泄漏,需要手动销毁