📜  javascript 中的 const(1)

📅  最后修改于: 2023-12-03 14:42:30.057000             🧑  作者: Mango

JavaScript 中的 const

在 JavaScript 中,const 是用来声明常量的关键字。常量是一种不可变的值,在声明后无法修改。与 let 和 var 不同,const 声明的变量必须在声明时初始化,否则会抛出错误。常量的值可以是基本类型的数据,也可以是对象和数组。在下面的内容中,我们将详细介绍 const 的用法和注意事项。

基本语法

const 的基本语法如下所示:

const name = value;

其中,name 是常量的名称,value 是常量的初始值。

常量不能被重新赋值

与 let 和 var 不同,const 定义的变量是不可重新赋值的。如果你试图给一个常量重新赋值,将会抛出一个错误。

const x = 10;
x = 20; // 抛出 TypeError 错误
常量的作用域

const 和 let 一样有块级作用域。即,当使用 const 声明的变量在某个代码块中定义时,它只能在该代码块内使用。在代码块之外,该变量将不再可用。

if (true) {
  const x = 10;
}
console.log(x); // 抛出 ReferenceError 错误
常量的值可以被修改

如果 const 声明的变量是一个对象或者数组,那么它的值可以被修改。但是,不能重新分配一个新的对象或数组给该变量。因为在这种情况下,const 变量指向的内存地址已经发生了变化。

const obj = { x: 10 };
obj.x = 20; // 可以修改对象
console.log(obj); // 输出 { x: 20 }

const arr = [1, 2, 3];
arr.push(4); // 可以修改数组
console.log(arr); // 输出 [1, 2, 3, 4]

const a = [1, 2, 3];
a = [4, 5, 6]; // 抛出 TypeError 错误,因为 a 的内存地址不能改变
常量和对象解构赋值

使用对象解构赋值时,const 方式声明的变量仍然是不可重新赋值的。但是,对象的属性值可以重新赋值。

const obj = { a: 1 };
const { a } = obj;
a = 2; // 抛出 TypeError 错误
obj.a = 2; // 可以修改对象的属性
console.log(obj); // 输出 { a: 2 }
总结
  • const 是用来声明常量的关键字,常量是一种不可变的值。
  • const 声明的变量必须在声明时初始化。
  • 常量不能被重新赋值,但是对象和数组的属性值可以被修改。
  • const 和 let 一样有块级作用域。
  • 如果 const 声明的变量是一个对象或者数组,那么它的值可以被修改,但是不能重新分配一个新的对象或数组给该变量。