在ECMAScript變量中包含兩種不同類型的值:基本類型值和引用類型值。
基本類型值:Undefined、Null、Boolean、Number、String
引用類型值:Object、Array、函數等
簡單點來說,聲明一個數組A、然后將其賦值給B、當修改B的值時,如果A的值沒有變化,說明它是深拷貝,如果A的值一起改變了,那它就是淺拷貝了。
實現數組深拷貝的一些方法:
1.使用ES6的語法
var a=[1,2,3] var [...b]=a;//或b=[...a] b.push(4); console.log(b);//1,2,3,4 console.log(a)//1,2,3
2.使用concat()方法
var a=[1,2,3] var c=[]; var b=c.concat(a); b.push(4); console.log(b);//1,2,3,4 console.log(a)//1,2,3
3.使用slice()方法
var a=[1,2,3] var b=a.slice(0); b.push(4); console.log(b);//1,2,3,4 console.log(a)//1,2,3
4.使用JSON對象的stringify和parse方法
var a=[1,2,3] var c=JSON.stringify(a); var b=JSON.parse(c); b.push(4); console.log(b);//1,2,3,4 console.log(a)//1,2,3
參考地址:
https://www.cnblogs.com/echolun/p/7889848.html
https://www.cnblogs.com/myzy/p/8561353.html