使用const定义的变量与使用let定义的变量拥有相同的作用域,不同在于使用const定义的变量后续不能对他进行重新赋值:
const a = 1;
a = 2;//error TS2588: Cannot assign to 'a' because it is a constant.
但如果使用const定义的是object或数组类型的变量,变量本身不能被重新赋值,但变量所代表的对象或数组还是可以被修改的:
const a = {
data : 1
};
a.data = 2;
console.log(a);//输出{ data: 2 }
a = {data : 1};//error TS2588: Cannot assign to 'a' because it is a constant.
const b = [1,2];
b.push(3);
console.log(b);//输出[ 1, 2, 3 ]
b = [4,5,6];//error TS2588: Cannot assign to 'b' because it is a constant.