js物件型別賦值與深拷貝

2021-09-29 07:25:08 字數 751 閱讀 1758

先來看乙個例子:

let arr=;

for(let i = 0;i<5;i++)

console.log(arr);

此時輸出的arr為 [,,,,]

並未向arry中push進不通的內容,原因是因為物件型別賦值時並不是簡單的賦值,而是指向乙個變數,這個變數儲存了物件型別資料的位址,再由這個變數指向這乙個位址。

如下圖所示,

可做如下修改:

let arr=;

let obj = ;

for(let i = 0;i<5;i++)

console.log(arr);

此時輸出的arr為 [,,,,]

也可使用深拷貝,object.assign() 方法用於將所有可列舉屬性的值從乙個或多個源物件複製到目標物件。它將返回目標物件。

let arr=;

for(let i = 0;i<5;i++),obj);

}console.log(arr);

此時輸出的arr為 [,,,,]

js 物件深拷貝 深拷貝與淺拷貝

前言 最近在複習一些面試的知識點,剛剛好複習到了這一部分,於是就寫下這篇文章記錄一下。一 值型別和引用型別 在學習深拷貝和淺拷貝之前,我們先來了解一下js的變數型別。值型別 vs 引用型別 值型別 值型別主要有 number,string,boolean,symbol,null,undefined ...

js資料型別賦值,淺拷貝,深拷貝

直接上 是我的風格基本資料型別的賦值 var a 10 var b a b 24 console.log a 10 a不受b的影響。console.log b 24 基本資料型別賦值時。是copy乙份10的值。當b 24時。a不受b的影響。複製 複雜資料型別的賦值 var obj var obj1 ...

js物件淺拷貝與深拷貝

在js中,如果乙個物件,作為變數賦值給另乙個物件,那麼兩個物件得值會是相同得引用位址,其中乙個改變,另外乙個也會隨之改變。var obj1 var obj2 obj1 obj2.num 456 console.log obj1.num 輸出 456 複製 在我們日常開發過程當中,我們去複製乙個物件得...