📜  JavaScript 中 let & const 有什么用?

📅  最后修改于: 2022-05-13 01:56:44.931000             🧑  作者: Mango

JavaScript 中 let & const 有什么用?

在本文中,我们将讨论 JavaScript 中 let 和 const 的用法。

let:它是在 JavaScript 中声明块作用域变量的关键字,即它允许在块内或表达式内而不是在整个文档中声明变量。

句法:

let x = 3;

特征:

  • let声明的变量不能在 JavaScript 中重新声明。这意味着如果一个变量是用 let 声明的,那么我们就不能在同一个上下文中再次重新声明同一个变量。

示例 1:我们得到一个语法错误,因为 x 不能在同一范围内重新声明。

HTML


HTML


HTML


HTML


HTML


HTML


HTML


HTML


HTML


输出:

SyntaxError: Identifier 'x' has already been declared

注意: let 允许在块作用域{ } 内声明相同的变量,但不能在块作用域外使用。

示例 2:

HTML


输出:

ReferenceError: x is not defined

示例 3:

HTML


输出:

GeeksforGeeks

示例 4:我们可以在块作用域内声明一个 let 变量,它将被视为块作用域内的局部变量,并且比之前定义的全局变量具有更高的优先级。

HTML


输出:

12
Computer science portal
GeeksforGeeks

示例 5:一个关键点是当一个变量用let声明时,它被托管在块的顶部但没有被初始化。所以,如果我们在声明变量之前使用let变量,我们会得到一个引用错误

HTML


输出:

ReferenceError: Cannot access 'x' before initialization

const:也是关键字声明变量是块作用域的,但是const关键字声明的变量不能在同一个作用域内更新。与let变量类似, const变量在声明之前既不能重新声明也不能访问。

句法:

const x = 12;

特征:

  •   const关键字声明的变量在同一范围内或块内保持不变。

示例 1:

HTML


输出:

TypeError: Assignment to constant variable.

示例 2:const变量可以声明为块作用域内的局部变量,并且对局部变量的偏好是 高于块作用域内的全局变量。

HTML


输出:

GeeksforGeeks
Welcome
12

示例 3:如果我们尝试使用const关键字声明一个对象,则该对象无法更新,但对象的属性仍然可以更新。

HTML


输出:

GeeksforGeeks
Welcome to GeeksforGeeks

示例 4:与 let 类似,必须在声明之前初始化 const 对象。如果它未初始化,我们将得到一个引用错误。

HTML


输出:

ReferenceError: Cannot access 'x' before initialization

关键区别:所以我们看到用let关键字声明的变量可以重新分配,而用const关键字声明的变量永远不能在同一范围内重新分配。