最近替另乙個專案招人,要求基礎知識好,隨便問了一些基礎題,發現了一些易錯的點,總結一下。
1、判斷乙個空陣列
var arr = ;
1)json.stringify(arr) == ""
2)arr instanceof array && arr.length == 0
3)array.prototype.isprototypeof(arr) && arr.length == 0 測試乙個物件是否在另乙個物件的原型鏈上
注意:此處要注意,單純判斷空物件的布林值時,為true,但是當arr == true的結果為false。
因為,number(arr)的值為0,當arr == true的判斷時,會都轉成number型別再進行判斷,相當於0 == 1 ,所以為false。
2、判斷乙個空物件
var obj = {};
1)json.stringify(obj) == "{}";
2)object.prototype.isprototypeof(obj) && object.keys(obj).length == 0;
object.keys(obj)返回乙個陣列,值為物件中的各個key,但該方法有相容性問題,ie9以下不支援。ie9以下可以使用for in方法代替,但注意,它會將原型鏈上的屬性也列舉出來,因此新增obj.hasownproperty(key)進行自身屬性的判斷,如果此為真,則為非空物件,若為假,則為空陣列。
3)$.isemptyobject(obj) 此方法為jquery的方法,原理也是for in遍歷
注意:原型鏈上的屬性也是可以被列舉的,因此使用時,最好和obj.hasownproperty(key)一起使用
C 基礎知識易錯點總結(2)
1.若一組待排資料有序,花費時間最多的是 快速排序,t n o n 2 2.有 1000 個無序的整數,希望使用最快的方式找出前 50 個最大的,最佳的選擇是?3.處理雜湊衝突的方法 4.詞法分析器用於識別單詞 5.計算機作業系統出現死鎖的原因 若干程序因競爭資源而無休止的等待著其他程序釋放已占有的...
《面試題》java基礎知識易錯點
1 關於a 與 a的辨析 以如下 為例 int m2 4 int n2 5 使用 邏輯運算子 if m2 4 n2 5 system.out.println m2 n2 輸出結果為5 6 使用 邏輯運算子 if m2 4 n2 5 system.out.println m2 n2 輸出結果為5 52...
js基礎知識點(一)
js原始型別有哪幾種 null是物件嗎?boolean number null undefined string symbol 另外對於null來說,很多人會認為他是個物件型別,其實這是錯誤的。雖然typeof null會輸出object,但是這只是 js 存在的乙個悠久 bug。在 js 的最初版...