在 JavaScript 中,"作用域"(Scope)是定义变量、函数和对象可访问性的规则集合。它确定在代码中的哪些部分可以访问或引用特定的变量、函数或对象。
JavaScript 中有两种主要类型的作用域:
1:全局作用域(Global Scope):全局作用域是在代码中没有包裹在任何函数内部的部分。在全局作用域中声明的变量可以在代码中的任何位置访问。全局作用域中声明的变量和函数在整个应用程序中都是可见的。
示例:
var globalVariable = 'I am a global variable';
function globalFunction() {
console.log('I am a global function');
}
console.log(globalVariable); // 输出:I am a global variable
globalFunction(); // 输出:I am a global function
2:局部作用域(Local Scope):局部作用域是在函数内部创建的作用域。在局部作用域中声明的变量只能在函数内部访问。这意味着在函数外部是无法访问这些变量的。
示例:
function localFunction() {
var localVariable = 'I am a local variable';
console.log(localVariable);
}
localFunction(); // 输出:I am a local variable
console.log(localVariable); // 抛出 ReferenceError: localVariable is not defined
作用域还涉及到一个重要的概念,即变量的"作用域链"(Scope Chain)。当在某个作用域中查找变量时,如果当前作用域没有该变量,JavaScript 引擎会继续向上查找,直到找到该变量或达到全局作用域。这个变量查找的路径就是作用域链。