深度剖析:TypeScript 中 const 与 readonly 及枚举和常量的区别
1. const和readonly的区别: - const声明的变量或常量是不可变的,一旦被赋值,就不能再次更改。如果尝试更改,JavaScript会抛出错误。 - readonly声明的变量或常量在初始化后不能更改。可以更改readonly变量或常量引用的对象或数组的属性或元素。 - const和readonly都可以用于声明只读属性,但readonly可以用于类的属性,而const不能。 2. 枚举和常量的区别: - 枚举是一种特殊的类型,用于创建一组具有特定值的命名常量。枚举的值是固定的,不能在运行时更改。 - 常量是在程序运行时不可变的值。常量的值可以在声明时初始化,也可以在运行时设置,但一旦设置,就不能更改。 - 枚举的值是具有特定名称的,而常量的值是数字或字符串。 例如: ```typescript enum Color {Red, Green, Blue} let c: Color = Color.Red; console.log(c); // 输出:Color.Red const PI = 3.14; PI = 3; // 抛出错误:不能重新赋值 const greeting = "Hello"; greeting = "Hi"; // 抛出错误:不能重新赋值 const myArray = [1, 2, 3]; myArray.push(4); // 不抛出错误,因为数组的元素可以更改 ``` ######[AI写代码神器 | 313点数解答 | 2023-11-09 01:21:29]
相关提问
- 代码优化建议:为姓名滚动代码添加错误处理、描述性命名与注释 (字节豆包 | 73点数解答 | 2025-02-26 08:45:58)188
- Smali代码揭秘:Android平台下支付宝SDK静态字段“c”的初始化过程(讯飞星火 | 76点数解答 | 2024-08-09 20:30:24)315
- 代码深度剖析:变量、事件处理与 DOM 操作的细节考量(字节豆包 | 139点数解答 | 2024-11-22 23:56:54)229
- 代码修复:打造基于文件列表值的自动完成输入框(讯飞星火 | 630点数解答 | 2024-11-23 00:01:37)232
- 第9关:C++链式栈热身训练,从建立到出栈全实现!(字节豆包 | 767点数解答 | 2024-12-21 20:36:03)255
- 第9关:C++链式栈热身训练,从建立到出栈全实现!(字节豆包 | 755点数解答 | 2024-12-21 20:36:04)240
- C++链式栈热身训练:从模板实现到完整代码实战(字节豆包 | 667点数解答 | 2024-12-21 20:36:04)219
- C++ 第 9 关:链式栈热身训练,从建立到出栈全实现!(字节豆包 | 725点数解答 | 2024-12-21 20:36:07)263
- 第9关C++链式栈热身:从模板搭建到入栈出栈完整实现!(字节豆包 | 811点数解答 | 2024-12-21 20:36:08)263
- 第9关:C++链式栈热身训练,构建、判空、出入栈全搞定!(字节豆包 | 820点数解答 | 2024-12-21 20:36:12)292
- 交互式六边形动画代码解析:实现、优化与注意要点(DeepSeek | 255点数解答 | 2025-03-04 17:55:05)225
- "Fixing Postman Script: Correcting Login POST Request with JSON Data"(阿里通义 | 419点数解答 | 2024-10-29 19:35:25)259