原生JS 資料的深淺拷貝

2021-10-08 01:34:18 字數 1264 閱讀 6680

想要知道js資料深淺拷貝的原理,那一定要知道它們儲存的方式。步入正題之前我們先簡單介紹一下資料型別及其儲存方式。

1.1、資料型別

引用(複雜)資料型別

1.2、儲存方式

在記憶體的內部空間劃分了許多記憶體顆粒,記憶體顆粒分為

堆:儲存複雜資料型別資料

2.1、淺拷貝

let obj  =

;let objcopy = obj;

console.

log(obj)

;//

console.

log(objcopy)

;//

// 接上面的**

objcopy.name =

"root"

;console.

log(objcopy)

;//

console.

log(obj)

;//

2.2、深拷貝
let obj =

;let objcopy =

;// 相當於在記憶體中重新劃分了空間來儲存objcopy這個變數

objcopy.name = obj.name;

console.

log(obj)

;//

console.

log(objcopy)

;//

// 更改objcopy的值

objcopy.name =

"root"

;console.

log(obj)

;//

console.

log(objcopy)

;//

如果變數存在多個值,使用遍歷來實現深拷貝

let obj =

let objcopy =

;for

(let i in obj)

console.

log(objcopy)

;//

objcopy.age =25;

// 更改objcopy的值不會影響obj的值

console.

log(obj)

;//

console.

log(objcopy)

;//

JS深 淺拷貝

在js中,資料型別分為基本資料型別和引用資料型別兩種。對於基本資料型別來說,它的值直接儲存在棧記憶體中,而對於引用型別來說,它在棧記憶體中只是儲存了乙個指向對記憶體的引用,而真正的資料儲存在堆記憶體中。object array 這兩個就是引用型別,當我門直接去拷貝的話 copyobj obj 拷貝的...

js 深淺拷貝

深拷貝就是複製內部內容 淺拷貝就是複製記憶體位址 var obj 淺拷貝 引用傳遞 淺拷貝就是賦值,將鑰匙複製乙份 var o obj 深拷貝 內部內容複製乙份 將房子複製乙份 方法一 var str json stringify obj var obj3 json parse str 方法二 va...

js深淺拷貝

1.什麼是深淺拷貝 簡單的來說,加入b複製a a改變 如果b也跟著改變的話,那就是淺拷貝,反之是深拷貝 實現淺拷貝方法 1.賦值操作 var a 0 1,2 3,4 var b a a 0 5console log a 5,1,2,3,4 console log b 5,1,2,3,4 2.es6 ...