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