介绍
常量是指声明后 不可修改 的值,使用 const 关键字定义。不能重新赋值,这有助于提高代码的 可读性 和 稳定性
对于不会修改的值,尽量使用 const 而非 let,明确表达不可变意图
应用场景
类似手机中的
关于,里面的 CPU、屏幕尺寸、内存等配置是固定的,不能修改的圆周率
PI就应该定义为常量,否则被某个程序员手误改错了,会影响计算
命名规范
常量名通常使用全大写字母,多个单词之间用下划线连接(如 MAX_LENGTH)
用法
// 声明基本类型常量
const PI: number = 3.14159;
const APP_NAME: string = "鸿蒙应用";
const IS_DEBUG: boolean = false;
// 声明后不能重新赋值(会编译报错)
// PI = 3.14; // 错误:无法分配到 "PI" ,因为它是常数
特点
必须初始化
声明时必须赋值,不能只声明不初始化
// 错误:常量声明必须包含初始化表达式
const MAX_SIZE: number
类型可以省略
会自动类型推断
const COUNT = 100; // 自动推断为 number 类型
const MESSAGE = "Hello"; // 自动推断为 string 类型
引用类型常量
引用类型(对象、数组等)的常量,其引用不可变,但内部属性可以修改
// 数组常量
const arr = [1,2,3.14,200]
arr[0] = 100 // 允许:数组内部元素
arr = [300,500]
arr = [300,500] // 错误:不能重新赋值引用
常量的作用域
常量的作用域遵循块级作用域规则,即仅在声明它的代码块({})内有效:
if (true) {
const SCOPE_MSG = "块级常量";
console.log(SCOPE_MSG); // 正确:在作用域内
}
// console.log(SCOPE_MSG); // 错误:超出作用域
常量与枚举结合使用
常使用 enum 配合常量定义一组相关的固定值:
enum Direction {
UP,
DOWN,
LEFT,
RIGHT
}
const DEFAULT_DIRECTION = Direction.UP;
function move(direction: Direction = DEFAULT_DIRECTION) {
console.log(`移动方向:${direction}`);
}
使用推荐
集中管理常量:对于全局使用的常量,建议集中放在单独的文件中(如 constants.ets),便于维护
// constants.ets
export const MAX_RETRY_COUNT = 3;
export const API_BASE_URL = "https://api.example.com";
export const TIMEOUT_MS = 5000;
通过合理使用常量,可以使代码更加健壮、可维护,减少因意外修改导致的错误。