javascript es6之深度轉殖

2021-09-17 21:28:53 字數 939 閱讀 5106

在講深度轉殖之前,我們需要了解一些知識點:

判斷資料型別的方式:

1、typeof返回的資料型別:string number boolean undefined object function

2、object.prototype.tostring.call(obj)

拷貝資料:

基本資料型別:

拷貝後會生成乙份新的資料,修改拷貝以後的資料不會影響原資料

物件/陣列:

拷貝後不會生成新的資料,而且拷貝是引用。修改拷貝以後的資料會影響原來的資料

拷貝資料的方法:

1.直接賦值給乙個變數 //淺拷貝

2.object.assign() //淺拷貝

3.array.prototype.concat() //淺拷貝

4.array.prototype.slice() //淺拷貝

5.json.parse(json.stringify()) //深拷貝(深度轉殖),拷貝的資料裡不能有函式,處理不了

淺拷貝(物件/陣列)

特點:拷貝的引用,修改拷貝的資料會影響原資料,使得原資料不安全

深拷貝(深度轉殖)

特點:拷貝的時候生成新資料,修改拷貝以後的資料不會影響原資料

下面是我的深度轉殖的**

測試是否為深度轉殖:

執行結果:

從圖中可以看出修改了arr4物件裡面的屬性,arr3物件裡面的屬性並沒有改變,即實現了深度轉殖。

javascript es6 程式設計風格

字串 使用單引號 和反引號 避免使用雙引號 反引號用 插值 let a string foobar let b string foo bar console.log b 陣列解構 let arr array 1,2,3,4 let first,second arr console.log 1,fir...

帶你入門 JavaScript ES6 四

本文同步帶你入門前面我們學習了 本章我們將學習 es6 中的 類,了解類基本定義和繼承相關知識 es6 中的類是基於原型的繼承語法糖,本質上它是乙個function型別 1.1 原型宣告 function car engines car.prototype.startengines function...

String類之 深拷貝

上篇部落格我們說淺拷貝存在同一塊資源被多次釋放的問題,那麼這篇部落格就是給淺拷貝擦屁股,解決它遺留下來的問題。解決這個問題,我們可以考慮單獨給 s2 開闢一塊空間,只將 s1 裡的內容拷貝到 s2。看一看我們 是怎麼實現的吧 class string else 普通版版本 string const ...