JavaScript 中的“作用域”是什么意思?

2023-11-08 08:51:40 浏览数 (3)

在 JavaScript 中,"作用域"(Scope)是定义变量、函数和对象可访问性的规则集合。它确定在代码中的哪些部分可以访问或引用特定的变量、函数或对象。

JavaScript 中有两种主要类型的作用域:

1:全局作用域(Global Scope):全局作用域是在代码中没有包裹在任何函数内部的部分。在全局作用域中声明的变量可以在代码中的任何位置访问。全局作用域中声明的变量和函数在整个应用程序中都是可见的。

示例:

代码语言:javascript复制
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):局部作用域是在函数内部创建的作用域。在局部作用域中声明的变量只能在函数内部访问。这意味着在函数外部是无法访问这些变量的。

示例:

代码语言:javascript复制
    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 引擎会继续向上查找,直到找到该变量或达到全局作用域。这个变量查找的路径就是作用域链。

0 人点赞