涉及知识点,基本数据类型和引用数据类型在赋值时的区别
一、定义名为obj的对象,把对象赋值给newObj,在更改obj对象内容之前打印newObj
let obj = {a:1,b:2}
let newObj = obj
console.log(newObj,'newObj')
obj.c = 3
结果:被赋值的newObj跟着改变
二、设置setTimeout查看
let obj = {a:1,b:2}
let newObj = obj
console.log(newObj,'newObj')
setTimeout(function(){
obj.c = 3
},2000)
结果:在设置的两秒内打开,无变化
结果:重新刷新,在设置的两秒后打开,newObj变化了
说明:console.log(d) 中打印的引⽤数据类型时,在引⽤数据发⽣改变后,其打印的值也会被实时修改
原因:引用数据类型直接赋值是浅拷贝,指向的是内存地址,当原来的值改变之后,拷贝来的值也会跟着变。