<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>const</title>
</head>
<body>
<script type="text/javascript">
/*
1.声明时必须立即赋值, 之后不允许修改常量值
2.不允许重复声明
3.块级作用域
4.不存在变量提升
*/
let a = 1;
console.log(a);
a = 2;
const b = a;
// const b = 20; // Identifier 'b' has already been declared
console.log(b); // 报错; 11; 1;
a = 11;
// b = 111;
console.log(b); // 11; 报错, 1
const c = {
name: '李明',
age: 20,
skill: {
name: 'HTML',
years: 5
}
}
// console.dir({});
Object.freeze(c); // 冻结对象
//该对象的属性将变得不可更改、不可添加和不可删除。
c.name = '王红';
Object.freeze(c.skill);
c.skill.name = 'css3';
console.log("c",c);
const d = [1, 2, 3, 4];
Object.freeze(d);
d.push(5);
console.log(d);
/*
1.const 声明的是一个只读常量,一旦声明,常量值就不可改变
2.const的作用域和let命令相同,只在声明所在的块级作用域生效
3.const命令声明的常量不提升,只能在声明后使用
*/
</script>
</body>
</html>
上述运行结果: