把a变量赋值给b变量,b变量修改后a变量也随之改变

	var list = [{
						days: '2023-05-01',
						active: false,
					},
					{
						days: '2023-05-02',
						active: false,
					},
				]
				let data_info = this.data_info
                console.log(list[0].active+'------------------test1')
				let a=list
				a[0].active=true
				let b=list
                console.log(list[0].active+'------------------test2')

打印结果如下
13:35:45.810 false------------------test1 at components/calen.vue:139
13:35:45.814 true------------------test2 at components/calen.vue:143
明显只修改了a变量 但是list变量却也变化了。就这么个简单问题,但是不知道为啥 困扰好久了。

已经知道怎么回事了
大致原因是:在js里,字符串、数字、布尔、这种称为基础类型是可以直接赋值的,即使是修改后也不会影响原来的数据。但是引用类型比如object,array这种就会出现上面描述的问题。现在发现自己理论好差。

解决方法:var arr1= JSON.parse(JSON.stringify(arr1));
————————————————
版权声明:本文为CSDN博主「zepcjsj0801」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zepcjsj0801/article/details/111148921

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐