最近專案遇到判斷空物件的乙個問題,查閱相關資料再進行總結一下。
如上**可以發現,無論是通過物件字面量方式建立的空物件還是通過object建構函式建立的空物件,彼此之間都是不相等的。
1.將物件轉換為字串進行比較
1我們可以得到兩種空物件轉換為字串後的比較都為真,可以解決這個問題,但是不推薦,下面說第二種方法。var a={};
2var b=new
object();
3 console.log("物件字面量的比較結果:"+(json.stringify(a)=="{}"))
4 console.log("建構函式的比較結果:"+(json.stringify(b)=="{}"))
2.for in迴圈
使用for in迴圈可以遍歷所有屬性以次判斷物件是否為空物件:
1使用for in迴圈對物件進行迴圈時迴圈屬性,相應的對陣列進行迴圈時迴圈的是下標,如:var a={};
2var b=new
object();
3function
isemptyobject(obj);
8return
true9};
10if
(isemptyobject(a))
13if
(isemptyobject(b))
1var b = ["hello","my","world"]
2for(var index inb)5
//hello my world
js 空陣列 空物件判斷
12 vararr newarray 或 var arr 我們知道,初始化後,即使陣列arr中沒有元素,也是乙個object。12 typeofarr object 既然是object,用於判斷條件時就會被轉化為true12 if arr console.log it s true it s tru...
js 判斷是否為空物件 空陣列
js 判斷是否為空物件 空陣列 當需要判斷引數是否為空時,總希望 js 能夠提供原生的判斷方法,可惜並沒有,只能自己封裝了。isempty function obj 檢驗陣列 if array.prototype.isprototypeof obj obj.length 0 檢驗物件 if obje...
js 判斷是否為空物件 空陣列
判斷引數是否為空函式 isempty function obj 檢驗陣列 if array.prototype.isprototypeof obj obj.length 0 檢驗物件 if object.prototype.isprototypeof obj object.keys obj leng...