js資料結構 知識點 陣列

2021-09-27 09:51:28 字數 987 閱讀 6692

1. join和tostring

同:都可將陣列轉換為字串。

異:join可自定義拼接的連線符號,預設為『,』 ;而tostring只有『,』

例如:var a=[1,2,3]

a.join();//'1,2,3'

a,join('-');//'1-2-3'

a.tostring();//'1,2,3'

2. 深拷貝,淺拷貝,一層深拷貝

針對引用資料型別產生的問題。引用資料型別的資料,值存放在堆記憶體中,位址存放在棧記憶體中。

簡單的賦值操作,實際上是將位址賦值給新的變數,因此導致乙個變數改變,另乙個變數同時改變。即淺複製。

進而,如果要實現深拷貝,使變數間的改變不會相互影響,須要使得實際的賦值操作為操作的變數的值而不是變數的位址。

詳細的有:

3. 建構函式建立變數

4.instanceof原理與原型鏈

5.sort()原理

6.多維陣列

js只支援一維陣列,更高緯度的陣列由巢狀陣列發展而來。

一維陣列:[1,2,3];  //陣列的每乙個元素是乙個標量

二維陣列:[["a","b","c"],[1,2,3],123];  //陣列的每乙個元素是乙個一維陣列

三維陣列:[[["a","b","c"],[1,2,3]],[["a","b","c"],[1,2,3]]];  //陣列的每乙個元素是乙個二維陣列

需要注意的是,多維空陣列不能直接向某個元素賦值,如

var arr1=;//一維陣列

var arr2=;//二維陣列

var arr3=;//三維陣列

//直接賦值,失敗

arr3[0][0][0]=1;

//必須,逐層賦值

arr1[0]=0;

arr2[0]=arr1

arr3[0]=arr2;

//可以直接訪問元素

console.log(arr3[0][0][0]);

面試知識點(資料結構)

map map內部實現是紅黑樹,具有自動排序的功能,因此map內部元素都是有序的,紅黑樹的每乙個節點都代表著map的乙個元素。map的查詢 插入 刪除操作的時間複雜度都是o logn unordered map unordered map內部實現是雜湊表 也叫雜湊表,通過把關鍵碼值對映到hash表中...

JS知識點 陣列高階API

1.陣列的遍歷 2.陣列的查詢 3.陣列的過濾與陣列的對映 陣列遍歷的方法 下面展示的 是js陣列遍歷的所有方法 需求 要求遍歷陣列 let arr 1 3,5 7,9 1.利用傳統迴圈遍歷陣列 for var i 0 i arr.length i 2.利用for in迴圈遍歷陣列 專門用於遍歷物件...

JS小知識點 陣列的相互賦值

需求場景 希望將已有陣列arrayold完全賦值到乙個新的陣列上,操作新陣列,原有陣列不變。錯誤 var arraynew arrayold 這樣寫arraynew和arrayold都會指向一樣的記憶體空間,操作arraynew時,arrayold也會改變。改進寫法 arraynew arrayol...