Js实现const
在JavaScript中,const是用于声明常量的关键字,其特点如下:
const的基本特性
- 声明时必须初始化,否则会抛出语法错误
- 不能重复声明同名变量
- 块级作用域(与let相同)
- 不允许重复赋值
const PI = 3.14159;
PI = 3.14; // 报错:Assignment to constant variable
const与对象/数组
对于引用类型,const仅保证变量绑定的内存地址不变,不保证内部属性不变
const obj = { name: 'John' };
obj.name = 'Mike'; // 允许修改属性
obj = {}; // 报错:试图改变绑定
const arr = [1, 2];
arr.push(3); // 允许修改数组内容
arr = []; // 报错
不可变对象的实现
如需完全不可变对象,可使用以下方法:
const obj = Object.freeze({ name: 'John' });
obj.name = 'Mike'; // 静默失败(严格模式下报错)
命名规范
常量通常使用全大写加下划线命名(非强制)
const MAX_SIZE = 100;
const API_ENDPOINT = '/data';
临时死区(TDZ)
与let相同,const存在暂时性死区,声明前访问会报错
console.log(VAL); // ReferenceError
const VAL = 1;
浏览器兼容性
所有现代浏览器均支持const,包括:

- Chrome 21+
- Firefox 36+
- Edge 12+
- Safari 5.1+
- Opera 12+
在旧版浏览器中(如IE10及以下),建议使用var替代或通过Babel等工具转译




