JS进阶-作用域、垃圾回收机制、闭包、变量提升(一)

• 作用域

作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问

作用域分为:

  •  局部作用域
  •  全局作用域

• 局部作用域

局部作用域分为函数作用域和块作用域

  • 1. 函数作用域:

在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。

JS进阶-作用域、垃圾回收机制、闭包、变量提升(一)_第1张图片

总结:

1. 函数内部声明的变量,在函数外部无法被访问

2. 函数的参数也是函数内部的局部变量

3. 不同函数内部声明的变量无法互相访问

4. 函数执行完毕后,函数内部的变量实际被清空了 

  • 2. 块作用域:

在 JavaScript 中使用 { } 包裹的代码称为代码块,代码块内部声明的变量外部将【有可能】无法被访问。

JS进阶-作用域、垃圾回收机制、闭包、变量提升(一)_第2张图片

总结:

1. let 声明的变量会产生块作用域,var 不会产生块作用域

2. const 声明的常量也会产生块作用域

3. 不同代码块之间的变量无法互相访问

4. 推荐使用 let 或 const 

• 全局作用域

你可能感兴趣的:(js,javascript,前端,java)