引用数据类型的名称是存在栈内存中,值存在堆内存中,在栈内会存在一个引用的地址指向堆内存中的值:
浅拷贝:
深拷贝:深拷贝后,所有层级的属性都不联动
实现浅拷贝的方法:
1、assign():let copyObj = Object.assign({},obj); //只有第一层不联动,深层的还是联动的
2、concat():var copyArr = arr.concat([]); //只有第一层不联动,深层的还是联动的
3、slice():var copyArr = arr.slice(); //只有第一层不联动,深层的还是联动的
4、var copyArr=[...arr];
实现深拷贝的方法:
1、for...in遍历:递归
2、JSON.parse(JSON.stringify(obj))