温馨提示×

关键字const和readonly的区别

小云
92
2023-09-01 14:49:31
栏目: 编程语言

关键字const和readonly都用于声明只读变量或只读属性,但它们的用法和作用有所不同。

  1. const关键字:
  • 可以用于变量和属性声明。

  • 声明的变量或属性的值在编译时确定,并且在整个程序执行过程中不可修改。

  • 在变量声明时必须进行初始化,且初始化后的值不能再改变。

  • 适用于基本数据类型、枚举、字符串字面量和对象字面量。

示例:

const PI = 3.14159;
const person = { name: 'John', age: 25 };
person.age = 30; // Error: 不能修改const声明的对象引用
function printNumber() {
const x = 10;
x = 20; // Error: 不能修改const声明的变量
console.log(x);
}
  1. readonly关键字:
  • 只能用于属性声明。

  • 声明的属性只能在声明时或构造函数中初始化,并且在整个对象的生命周期中不可修改。

  • 适用于类的成员属性。

示例:

class Person {
readonly name: string;
constructor(name: string) {
this.name = name;
}
changeName(newName: string) {
this.name = newName; // Error: 不能修改readonly声明的属性
}
}
const person = new Person('John');
person.name = 'Jane'; // Error: 不能修改readonly声明的属性

0