1⃣️不属于顶层对象window
const a = 5;
console.log('a:', a) // 5
console.log('a:', window.a) // undefined
2⃣️不允许重复声明
3⃣️不存在变量提升
if (true) {
console.log(a);
const a = 5; // 报错 ReferenceError: Cannot access 'a' before initialization
}
4⃣️暂时性死区 (防止在变量声明前 使用变量)
if (true) {
console.log(a); // 报错 ReferenceError: Cannot access 'a' before initialization
const a = 5;
}
console.log(a) // ReferenceError: a is not defined
5⃣️有块级作用域 {}
*引用类型常量可以成功赋值
const obj = {
name: 'kiw',
age: 18,
}
console.log(obj); // {name: "kiw", age: 18}
obj.school = 'imooc';
console.log(obj); // {name: "kiw", age: 18, school: "imooc"}
// 引用类型 存的是地址 所以能成功赋值
const obj = {
name: 'kiw',
age: 18,
}
Object.freeze(obj); //浅层冻结 让obj的属性不能修改
console.log(obj); // {name: "kiw", age: 18}
obj.school = 'imooc';
console.log(obj); // {name: "kiw", age: 18}
网友评论