深拷贝和浅拷贝区别是什么?
复制一个 Js 对象
浅拷贝:复制基本类型的属性;引用类型的属性复制,复制栈中的变量 和 变量指向堆内存中的对象的指针,不复制堆内存中的对象。
//浅拷贝
let a = [ 1 , 2 , 3 ];
let b = a
b.push(4)
console.log(a) // [1, 2, 3, 4]
console.log(b) // [1, 2, 3, 4]
深拷贝:复制基本类型的属性;引用类型的属性复制,复制栈中的变量 和 变量指向堆内存中的对象的指针和堆内存中的对象。
//深拷贝
let a = 5;
let b = a
b = b+3
console.log(a) // 5
console.log(b) // 8