ES6的块级申明:用let和const来修改对象

这篇文章的目的是:
举例说明const为什么不能修改对象绑定,并和let进行比较


  • (1)使用let来创建一个person对象,并之后再修改person内容
<script type="text/javascript">
	let person = {
		name: "aaa",
		age: "0000"
	}
	console.log(person.name + " | " + person.age); 
	
	person = {
		name:"bbb",
		age: "1111"
	}
	console.log(person.name + " | " + person.age); 
</script>

输出结果为:
在这里插入图片描述

  • (2)同样再次使用const来创建一个person对象,并修改其内容
<script type="text/javascript">
	const person = { // 使用const来定义
		name: "aaa",
		age: "0000"
	}
	console.log(person.name + " | " + person.age); 
	
	person = {
		name:"bbb",
		age: "1111"
	}
	console.log(person.name + " | " + person.age); 
</script>

输出结果为:
在这里插入图片描述
Uncaught TypeError:Assignment to constant variable,未捕获类型错误:分配给常量变量
转为可以理解的话来说:就是你用const来定义一个person常量,之后又给这个person常量进行重新定义,这种不被允许,是一种错误。

如果真的需要修改person属性的话,应该是使用" 对象名.属性名 = 新的值 "这样的形式才被允许。

那么,来试试这样的形式看可以不。

<script type="text/javascript">
	const person = {
		name: "aaa",
		age: "0000"
	}
	console.log(person.name + " | " + person.age); 
	
	// 使用“对象名.属性名”方式来修改
	person.name = "好好先生";
	person.age = "666";
	console.log(person.name + " | " + person.age); 
</script>

输出结果为:
在这里插入图片描述
从上图中得知person的属性值被更新过来

得出的结论

所以呢,const不可以修改绑定(即对象的名称),但是可以修改对象的属性值

发布了68 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_29001539/article/details/103367080