js中简单const简单常量与const复杂常量

313 阅读1分钟

const基本概念

  • 不可重新赋值:使用const声明的常量不能被重新赋值。
  • 块级作用域const声明的常量具有块级作用域,和let一样。
  • 不是真正的常量:如果const声明的是一个对象或数组,那么对象或数组内部的内容是可以修改的,只是不能改变对象或数组本身的引用

简单const常量

简单const常量通常指的是使用const声明的原始值(primitive values),如数字、字符串、布尔值、nullundefined和符号(Symbol)。这些值是不可变的,一旦被赋值,就不能再被修改。

  • const PI = 3.14159;
  • const NAME = "Alice";
  • const IS_STUDENT = true;

// 以下操作会抛出错误,因为简单const常量不可重新赋值 // PI = 3.14; // TypeError: Assignment to constant variable.

复杂const常量

复杂const常量通常指的是使用const声明的对象(Object)或数组(Array)等复杂数据结构。虽然你不能改变这些常量指向的内存地址(即不能让它们指向一个新的对象或数组),但你可以修改这些对象或数组内部的属性或元素。 const person = { name: "Bob", age: 30 };

const colors = ["red", "green", "blue"];

// 可以修改对象内部的属性 person.name = "Alice"; // 这是允许的

// 可以修改数组内部的元素 colors[0] = "yellow"; // 这也是允许的

// 以下操作会抛出错误,因为不能改变复杂const常量本身的引用 // person = { name: "Charlie", age: 40 }; // TypeError: Assignment to constant variable. // colors = ["purple", "orange"]; // TypeError: Assignment to constant variable.