JavaScript let

12 2025 年 4 月 | 阅读 5 分钟

在 JavaScript 中,let 是一个关键字,用于声明一个块作用域变量。通常,var 关键字用于在 JavaScript 中声明一个变量,该变量被视为一个普通变量,但使用 let 关键字声明的变量是块作用域的。

JavaScript 提供了三种声明变量的方式:var, const,let。这些关键字提供了不同的功能。Var 是声明变量的传统方法,而 constlet 关键字是 ES2015/ES6 之后引入的,它们创建块作用域变量。

早些时候,JavaScript 中只有两种类型的变量作用域:全局作用域函数作用域

let 的语法

以下是使用 let 关键字声明变量的语法

示例

下面讨论了各种示例,以帮助您理解 let 变量在块或函数内部和外部如何工作。这些是使用不同作用域中声明的变量的简单示例。

示例 1:全局作用域

在这里,您可以看到在主函数体或函数外部声明的变量具有全局作用域。因此,它可以在函数内部或外部的任何地方访问。

示例

立即执行

输出

Outside the function x = 20
Inside the function x = 20 

示例 2:函数作用域

在此示例中,您将看到在函数内部声明的变量仅具有函数作用域。因此,不允许在函数外部访问它。

示例

立即执行

输出

Inside the function num = 15
ReferenceError: num is not defined

示例 3:块作用域

在此示例中,您将看到在块内部声明的变量不能在块外部使用,因为它具有块作用域。

示例

立即执行

输出

Inside the function num = 30
ReferenceError: num is not defined

示例 4:在不同块中重新声明变量

在此示例中,我们将在不同块中声明同名变量并显示其值。

示例

立即执行

输出

执行上述代码时,将生成错误,因为不允许使用 let 变量进行重新声明。因此,它不会在浏览器上显示任何输出。

let 与 var 关键字有何不同?

在下面的示例中,您可以检查使用 let 和 var 关键字声明的变量具有不同的变量作用域和能力。

let 和 var 之间的关键区别在于它们的作用域。Var 具有全局作用域,而 let 是块作用域。请看下面的示例来理解区别

变量范围

在这些示例中,我们将展示使用 var 和 let 关键字声明的变量的作用域。

Var:全局作用域示例

示例

立即执行

输出

Value of x before the block: undefined
Value of x after the block: 28

let:块作用域示例

示例

立即执行

输出

Initial value of x: 30
Value of x inside the block: 37

上面的示例将向您展示当使用 var 和 let 关键字声明变量时,变量在块内部和外部具有不同的作用域。

循环作用域

在这些示例中,我们将展示使用 var 和 let 关键字声明的变量的作用域。

let:循环作用域示例

示例

立即执行

输出

在这里,您将看到 i 的初始值将被显示,因为不允许使用 let 关键字进行重新声明。

Final value of x outside of the loop: 4

var:循环作用域示例

示例

立即执行

输出

在这里,您将看到 i 的更新值将被显示,因为允许使用 var 关键字进行重新声明。

Final value of x outside of the loop: 10

重新声明

请参阅下面的示例,以了解允许哪些变量声明,哪些不允许。使用 var 可以在程序中的任何位置进行变量声明。

示例 1

示例 2

示例 3

示例 4


下一个主题JavaScript const