前端面試之淺拷貝深拷貝

2022-07-05 19:12:14 字數 816 閱讀 7300

淺拷貝

定義:對於字串型別,淺複製是對值的複製,對於物件來說,淺複製是對物件位址的複製,並沒 有開闢新的棧,也就是複製的結果是兩個物件指向同乙個位址,修改其中乙個物件的屬性,則另乙個物件的屬性也會改變

方法:1,object.assign

es6中拷貝物件的方法,接受的第乙個引數是拷貝的目標target,剩下的引數是拷貝的源物件sources(可以是多個)

let target = {};

let source =

}object.assign(target,source);

console.log(target); // }

object.assign使用注意事項:

let array = [,]

let array1 = array.slice(0);

console.log(array1)

let obj = }

let obj2 =

console.log(obj2)

深拷貝

// 1. josn.stringify()/json.parse()

let obj = }

json.parse(json.stringify(obj))

// 2. 遞迴拷貝

function deepclone(obj)

for (let i in obj)

} return copy

}

前端的深拷貝和淺拷貝 前端面試 深拷貝和淺拷貝

面試題目 如何實現對乙個陣列或物件的淺拷貝和深拷貝?wtf,複製還分兩種,第一次遇到這種問題的時候很是無語呢,先來看看一般的答案的理解。淺拷貝是只拷貝一層,深層次的物件級別就只拷貝引用。深拷貝是拷貝多層,每一級別的資料都拷貝出來。也就是說,基本資料型別其實不存在深淺拷貝的問題,只有物件和陣列才存在深...

前端面試經常問到的淺拷貝和深拷貝

1.深拷貝 淺拷貝定義概述 淺拷貝的時候如果目標是基本資料型別,就如同直接賦值那種,會拷貝其本身,如果目標是物件,那麼對於淺拷貝而言就只能拷貝其引用,原物件改變,拷貝物件也會隨之改變 但是深拷貝就會拷貝多層,即使是巢狀了物件,也會都拷貝出來。深拷貝在計算機中開闢了一塊記憶體位址用於存放複製的物件,原...

前端深拷貝與淺拷貝

前端深拷貝與淺拷貝 1.淺拷貝 var obj1 var obj2 obj1 obj2.a 5 console.log obj1.a 5 console.log obj2.a 52.深拷貝 只能拷貝一層 var obj1 var obj2 object.assign obj1 obj2.c 1 5 ...