JavaScript const

2025年4月2日 | 阅读4分钟

ES6 引入了 **const** 关键字,用于在 JavaScript 中定义新变量。通常,**var** 关键字用于声明 JavaScript 变量。 **Const** 是另一个用于声明变量的关键字,当你不想在整个程序中更改该变量的值时使用。

区别仅仅在于 var 用于普通变量声明,其值可以更改;而使用 const 关键字声明的变量的值则不能更改。

Const 变量声明/初始化

以下是 const 变量声明和初始化的语法或简单代码。

复制代码

输出

它将显示 const 变量 x 的值而不会出现任何错误。

The value of const variable x = 16

现在,我们将讨论使用 const 定义的变量的一些属性。

性质

以下是 **const** 变量的属性

  1. 使用 const 关键字定义的变量不能重新赋值,或者其值不能被更改。
  2. Const 变量必须在声明时初始化,并附带变量名,例如:**const x=6;**
  3. 声明后不能为变量提供值。
  4. Const 变量的值不能被更改。
  5. **const** 变量具有块作用域。这意味着同一程序中的 const 变量可以在不同块中以相同名称重新赋值并具有不同的值。
  6. Const 变量不能被提升,这意味着使用 **var** 关键字声明/初始化的变量不能使用 **const** 重新赋值。
  7. 在 JavaScript 中,const 允许你仅修改数组的值,但不能更改数组的引用。
  8. Const 变量仅创建值的引用。
  9. 对象属性可以更改,但对象的引用不能更改。

示例

这里,我们有一些实际的例子来解释不同的属性。

示例 1: 通过这个例子,你将看到 **const 变量不能被重新赋值**。

复制代码

输出

它将生成一个 **类型错误**,因为无法为常量变量重新赋值。

JavaScript error: Uncaught TypeError: Assignment to constant variable. on line 3

示例 2: 在这个例子中,你将了解到 **const 变量具有块作用域**。

复制代码

输出

执行上述代码不会有任何错误。它只会打印不同块的 x 值,而不会出现任何语法或类型错误。

Block2: x = 23
Block3: x = 74
Block4: x = 49
Block1: x = 16

示例 3: 此示例将描述 **const 变量不能被提升**。

复制代码

输出

它将生成一个 **语法错误**,因为不允许重新声明变量。

JavaScript error: Uncaught SyntaxError: Missing initializer in const declaration on line 4

示例 4: 此示例将向你展示 **const 变量不能在声明后初始化**。

复制代码

输出

它将生成一个 **语法错误**,因为不允许在 const 变量声明后进行初始化。

JavaScript error: Uncaught SyntaxError: Missing initializer in const declaration on line 2

示例 5:JavaScript 中,const 允许你仅修改数组的值,但不能更改数组的引用。

复制代码

输出

这里,你可以看到 Manya 的名字已被 Krishna 取代。尽管数组是用 **const** 关键字声明的。因此,它将两次显示数组的所有值而不会出现任何错误。

Aparna, Manya, Amayra, Jahanvi
Aparna, Krishna, Amayra, Jahanvi

示例 6: 在这个例子中,我们将向你展示 const 变量的值不能被更改或修改。

复制代码

输出

这里,你可以看到不能用相同的名称重新初始化对象值,但可以通过其引用来更改对象值。

[object object] [object object]