代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>02_const关键字</title>
</head>
<body>
<!--
1. 作用:
* 定义一个常量
2. 特点:
* 其它特点同let
3. 应用:
* 保存不用改变的数据
-->
<script type="text/javascript">
// 与let不同之处,不能修改
// const PI=3.1415;
// PI=3.1415926;// Assignment to constant variable.
// 对于const来说,只声明不赋值,就会报错
// const dataInit
// console.log(dataInit)// Missing initializer in const declaration
</script>
<script>
// 对象是引用数据类型,当重新给对象赋值,指针则会指向另一个地址,所以不是一个对象了,
// 所以就违背了const不能修改的特点(内存地址所保存的数据不得改动)
// 简单数据类型不必考虑,不能修改对象的地址,但可以修改对象(复杂数据类型)的 属性
const person={
name:"独孤求败",
age:40
}
// person = {} // Assignment to constant variable.
person.name='殇不患';
console.log(person);//{name: "殇不患", age: 40}
</script>
<script>
// 'use strict'
// 就是任性不让对象的属性值改变
Object.freeze(person);
person.name='凌雪鸦';//严格模式下则会报错 Cannot assign to read only property 'name' of object '#<Object>'
console.log(person);//{name: "殇不患", age: 40}
// 除了对象本身的冻结,对象的属性也可以冻结
const constantize=(obj)=>{
Object.freeze(obj)
Object.keys(obj).forEach((key,i)=>{
if(typeof obj[key]==='object'){
constantize(obj[key])
}
})
}
const obj={
name:"冻结"
}
constantize(obj)
obj.name=1
obj.age=40
console.log(obj)//{name: "冻结"}
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。