javaScript中存在两大数据类型
基本数据类型 : Number String null undefined Boolean ----存储与栈中
引用数据类型化 : Array Object function -----存储在堆中
引用数据类型的变量是指向 引用数据存储在堆中的地址
1. 浅拷贝 : 浅拷贝如果是 基本数据类型直接拷贝数据的值 ,如果是引用数据类型拷贝的是指向他堆存储的地址
浅拷贝的方法 : Object.assign Array.slice() Array.concat() 扩展运算符
2.深拷贝 : 开辟一个新的栈 两个对象的属性全部相同 但是地址不同 修改其中一个对象时 改变不了另一个对象的值
深拷贝的方法: _.cloneDeep() JSON.parse(JSON.stringify()) 手写递归循环
JSON.parse(JSON.stringify()----这种方式存在弊端,会忽略undefined、symbol和function