const和readonly的区别

constreadonly的区别如下:

  1. const用于声明编译时常量,而readonly用于声明运行时只读属性。
  2. const可以用于基本类型、对象字面量和数组字面量,而readonly只能用于对象属性和数组元素。
  3. const声明的变量在整个作用域内具有相同的值,而readonly声明的属性只能在声明或构造函数中初始化,并且不能在其他地方重新赋值。

使用方式:

  • 使用const关键字可以直接在声明时给变量赋值,其值不能被修改。
  • 使用readonly关键字可以将类的属性或接口的属性设置为只读,即只能在声明或构造函数中初始化,不能在其他地方进行修改。

常见的使用情况和举例:

  1. 使用const

    • 定义数学常量:const pi = 3.14159;
    • 定义固定的配置信息:const apiUrl = "https://api.example.com";
  2. 使用readonly

    • 在类中将某些属性设置为只读:

      class Person {
        readonly name: string;
        constructor(name: string) {
          this.name = name;
        }
      }
      const person = new Person("Alice");
      console.log(person.name); // 输出: "Alice"
      person.name = "Bob"; // 错误: 'name' 是只读属性,不能重新赋值
      
    • 在接口中定义只读属性:

      interface Point {
        readonly x: number;
        readonly y: number;
      }
      const point: Point = { x: 10, y: 20 };
      console.log(point.x, point.y); // 输出: 10 20
      point.x = 30; // 错误: 'x' 是只读属性,不能重新赋值
      

总结来说,const用于定义编译时常量,而readonly用于定义运行时只读属性。在需要保证某些值不被修改的情况下,可以使用constreadonly来增加代码的可靠性和可维护性。

你可能感兴趣的:(前端,javascript,开发语言)