const

const 与 let 基本相同

区别


  • const 在声明变量时、必须初始化
  • const 一但被初始化、其变量的引用不可变

const i; //error Missing initializer in const declaration
const i=1; //right

与let一样 const 不能在同一作用块中重复声明

const i = 1;
//const i = 1;//error

可变与不可变

const const_obj = {
i: 0
};
console.log(const_obj); //{i:0}
const_obj.i = 2; //可变
console.log(const_obj); //{i:2}
//const_obj = {};//不可变 error

const 与 for 循环

const不能声明迭代变量

for (const i = 0; i < 2; i++){
//error 因为 const i 不可变
}

//但也有用的时候
for (const key in {
a: 1,
b: 2
}) {
console.log(key); // 'a' 'b'
}

for (const value of [1, 2, 3]) {
console.log(value); // 1 2 3
}

声明风格与最佳实践


  • 不使用var
  • const 优先,let 次之