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...