方法一 for...in
-
通過for...in遍歷屬性,如果是空對象返回false,否則返回true
例:
var judgeObj = function(obj){
for(var item in obj){
return true;
}
return false;
}
當對象中k值不存在的話,得到的k為undefined,即false,那么就是空對象。
方法二 Object.keys()
-
通過ES6新增的一個Object.keys()方法
該方法會返回一個由給定對象的自身可枚舉屬性組成的數組,數組中屬性名的排列順序和使用 for...in.. 循環遍歷該對象時返回的順序一致 。即可以通過返回數組的長度來判斷是否為空對象,若為空對象,該數組長度為0。
例:
var judgeObj = function(obj){
if (Object.keys(obj).length == 0) {
return true;
} else {
return false;
}
}
附:
Object.keys() 方法會返回一個由一個給定對象的自身可枚舉屬性組成的數組
,數組中屬性名的排列順序和使用 for…in 循環遍歷該對象時返回的順序一致 (兩者的主要區別是 for-in 循環還會枚舉其原型鏈上的屬性)。
var obj={
p1:123,
p2:456
}
console.log(Object.keys(obj)); //["p1","p2"]