优先使用 const,仅在需重新赋值时用 let;const 表明绑定不可变,适用于基本类型和引用类型,let 用于循环、条件分支等必须变更的场景。

优先用 const,只在确实需要重新赋值时才用 let。
const 是默认选择
只要变量初始化后不会指向另一个值,就该用 const。它明确表达“这个绑定不可变”,既减少误改风险,也便于引擎优化。
- 基本类型(string、number、boolean 等)用 const 更安全,避免意外覆盖
- 对象、数组、函数、正则等引用类型也适用 const——它们内部可修改,但变量本身不能重新赋值
- 例如:const user = { name: 'Alice' }; 合法;但 user = { name: 'Bob' }; 会报错
let 用于需要变更的场景
let 表示“这个变量后续会变”,适用于必须多次赋值的情况。
- 循环计数器:for (let i = 0; i < 5; i++) { ... },每次迭代都有独立的 i
- 条件分支中不同路径赋不同值:let result; if (ok) { result = 'success'; } else { result = 'fail'; }
- 函数内中间状态更新,比如累积计算或临时缓存
避免常见误用
选错声明方式往往源于对“可变性”的误解,不是看内容能不能改,而是看变量名能不能再指向新值。
立即学习“Java免费学习笔记(深入)”;
- 声明了 let 却从不重新赋值?那其实该用 const
- 用 const 声明空对象再填充属性,是合理且推荐的做法
- 不要为图省事把所有变量都用 let,这会弱化代码意图,增加维护成本


















