面试题答案
一键面试何时优先使用let
- 变量值会发生变化时:在循环体中,需要不断更新循环变量的值。例如:
for (let i = 0; i < 10; i++) {
console.log(i);
}
这里i
的值在每次循环中都会增加,使用let
声明是合适的。
何时优先使用const
- 声明常量时:当一个变量的值在整个程序生命周期内都不会改变时,使用
const
。例如,定义一个数学常量PI
:
const PI = 3.1415926;
- 对象或数组作为常量时:虽然对象或数组本身是可变的,但如果逻辑上它们不应被重新赋值,也使用
const
。例如:
const myArray = [1, 2, 3];
// 可以修改数组内容
myArray.push(4);
// 但不能重新赋值
// myArray = [5, 6]; // 会报错
不当使用的影响
- 维护性:
- 不当使用let:如果在不必要的地方使用
let
,导致变量被意外修改,会使代码逻辑难以理解和调试。例如:
- 不当使用let:如果在不必要的地方使用
let num = 10;
// 代码中间部分
num = 20;
// 后续代码可能依赖初始值10,这种意外修改增加了维护难度
- **不当使用const**:如果本应使用`let`的地方使用了`const`,会限制变量的正常更新,导致程序无法实现预期功能,同样增加维护成本。
2. 可扩展性:
- 不当使用let:过多的可变变量可能使代码耦合度增加,难以在不影响其他部分的情况下进行扩展。例如,在模块中使用let
声明全局变量,其他模块依赖这个变量的值,后续扩展可能导致变量值冲突。
- 不当使用const:在需要根据不同条件动态改变值的地方使用const
,会限制代码的扩展性,因为无法重新赋值。
3. 运行效率:
- 不当使用let:频繁的变量赋值操作可能会消耗更多的内存和CPU资源,尤其是在性能敏感的代码块中。
- 不当使用const:通常对运行效率影响不大,但如果错误地将需要多次赋值的变量声明为const
,可能导致重新设计代码结构,间接影响效率。