JavaScript 中的作用域(Scope)定义了变量的可访问范围,即在程序中访问变量的有效区域。作用域可以分为全局作用域和局部作用域。

1. 全局作用域(Global Scope):
   - 全局作用域是整个程序的范围,包括所有函数之外声明的变量。
   - 在全局作用域中声明的变量可以被程序中的任何地方访问。
var globalVariable = "I'm global!";

function exampleFunction() {
  console.log(globalVariable); // 可以访问全局变量
}

exampleFunction();
console.log(globalVariable); // 可以在全局范围外访问

2. 局部作用域(Local Scope):
   - 局部作用域是在函数内声明的变量的范围。
   - 在函数外部无法访问局部作用域中的变量。
function exampleFunction() {
  var localVariable = "I'm local!"; // 局部变量

  console.log(localVariable); // 可以在函数内访问
}

exampleFunction();
// console.log(localVariable); // 这里会导致错误,无法访问局部变量

3. 块级作用域(Block Scope):
   - 在ES6(ECMAScript 2015)之后引入了块级作用域,使用 let 和 const 声明的变量具有块级作用域。
   - 块级作用域是由花括号 {} 定义的区域。
if (true) {
  let blockVariable = "I'm in a block!"; // 块级作用域变量
  console.log(blockVariable); // 可以在块内访问
}

// console.log(blockVariable); // 这里会导致错误,无法访问块级作用域变量

注意:使用 var 声明的变量在函数内部具有局部作用域,在块级作用域外部可以访问。而使用 let 或 const 声明的变量在块级作用域外部无法访问。块级作用域增加了对变量的更细粒度的控制,有助于避免一些潜在的问题。


转载请注明出处:http://www.pingtaimeng.com/article/detail/3516/JavaScript