淺拷貝:object.assign()
let arr1 = [1,23,54]let arr2 =object.assign(arr1)
console.log(arr1 === arr2) //
result : true
let obj1 =
let obj2 =object.assign(obj1)
console.log(obj1 === obj2) //
result : true
深拷貝 json.parse( json.stringify( ) )
let arr1 = [1,54,62,7]let arr2 =json.parse(json.stringify(arr1))
console.log(arr1 === arr2 ) //
result :false
let obj1 =
let obj2 =json.parse(json.stringify(obj1))
console.log(obj1 === obj2) //
result : false
深拷貝 擴充套件運算子 (...)
在使用擴充套件運算子 來進行深拷貝,需要注意的是 擴充套件運算子 只深拷貝 一維陣列 和 物件 (意思就是裡面不能套其他的陣列或物件)
let arr1 = [1,53,58,4]let arr2 =[...arr1]
console.log(arr1 === arr2) //
result : false
let obj1 =
let obj2 =
console.log(obj1 === obj2) //
result : false
下面 舉例 不可深拷貝 的情況
let arr1 = [1,53,5,[2,3]]let arr2 =[...arr1]
console.log(arr1 === arr2) //
result : false
//但是這裡 有乙個情況存在
console.log(arr1[3] === arr2[3]) //
result : true
js 物件深拷貝 深拷貝與淺拷貝
前言 最近在複習一些面試的知識點,剛剛好複習到了這一部分,於是就寫下這篇文章記錄一下。一 值型別和引用型別 在學習深拷貝和淺拷貝之前,我們先來了解一下js的變數型別。值型別 vs 引用型別 值型別 值型別主要有 number,string,boolean,symbol,null,undefined ...
物件的淺拷貝與深拷貝
工作中可能會遇到這樣乙個問題,我明明把資料拷貝了乙份,但改變拷貝後的資料居然同時會改變原始資料中的值。那就來看看為什麼吧,希望這篇文章可以給你解惑。只拷貝了資料物件的第一層,深層次的資料值與原始資料會互相影響 拷貝後的資料與原始資料還存有關聯 常見淺拷貝的方式 object.assign 擴充套件運...
JS 物件陣列淺拷貝,深拷貝
物件陣列的深拷貝與淺拷貝,簡單點來說,就是b複製了a,當a被修改時,未操作b,但b也跟著變了,就是淺拷貝,反之是深拷貝 深拷貝本身只針對較為複雜的object型別資料 淺拷貝 var a var b a a 1 age 18 console.log a,b 執行結果,a,b的age都發生了改變 偽深...