关于const的学习笔记
const和let完全相同,仅在于用const声明的变量,必须在声明时赋值,而且不可以重新赋值。
const a;
console.log(a) // 报错(缺失初始化 在 一个常量的声明中)
const a = 1;
a = 2;
console.log(a) // 报错(赋值给常量)
常量不可变,是指声明的常量的内存空间不可变,并不保证内存空间中的地址指向的其他空间不可变。
// 不能给a直接重新赋值,但是可以改变a里面的值
const a = {
name: 'sunny'
};
a.name = 'lisa';
console.log(a) // {name: 'lisa'}
a = {
name: 'kevin'
};
console.log(a) // 报错 Uncaught TypeError: Assignment to constant variable.
const PI = 3.14;
const MOON_EARTH_DISTANCE = 384403.9;
在循环中,循环变量不可以使用常量。(因为常量不可重新赋值,let声明的变量可以重新赋值)
for(const i = 0; i < 10; i++){
console.log(i) // 0 报错
}
// 补充 :for in 当中可以使用const(因为在每个块级作用域当中,使用的是全新的常量)
let obj = {
name:'lisa',
age: 20
}
for(const prop in obj){
console.log(prop) // name age
}
for(let i = 0; i < 3; i++){
console.log(i) // 0 1 2
}