1. 什么是深拷贝,浅拷贝
- 深拷贝复制变量值,对于非基本类型的变量,则递归至基本类型变量后,再复制。 深拷贝后的对象与原来的对象是完全隔离的,互不影响, 对一个对象的修改并不会影响另一个对象。
- 深拷贝和浅拷贝是针对复杂数据类型来说的,浅拷贝只拷贝一层,而深拷贝是层层拷贝。
- 浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象只是对原对象的一个引用
- 深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”
2. 为什么要使用深拷贝?
在改变新的数组(对象)的时候,不改变原数组(对象)
3.理解值类型与引用类型
值类型:number,string,boolean,undefined,null ,symbol(简单数据类型,每次赋值是)
第1步a=100;
第2步b=a;
第2步a=200;
引用类型:对象,函数(复杂数据类型,每次赋值是指向变量内存地址)
第1步a=内存地址1;
第2步b=a;
第3步a={a:21};//b等于21
4.内存模型