javascript中怎麼判斷物件{}為空
阿新 • • 發佈:2018-11-28
時候通過AJAX方法呼叫返回的是一個JSON物件,而這個物件可能在開發過程中會沒有資料是一個空{}。
JavaScript判斷object/json 是否為空,可以使用jQuery的isEmptyObject()方法。
function isEmptyObject(obj) {for
(
var
key
in
obj)
{
return
false
;//返回false,不為空物件
}
return
true
;
}//返回true,為空物件
console.log(isEmptyObject({"re": 2})); //false console.log(isEmptyObject({})); //true console.log(isEmptyObject(null)); //true//注意引數為null時無語法錯誤哦,即雖然不能對null空指標物件新增屬性,但可以使用for in 語句
console.log(isEmptyObject(23)); //true console.log(isEmptyObject({"te": 2})); //false
以上是實現這個方法的簡單原理,在 jQuery 中直接呼叫方法即可。
jQuery.isEmptyObject({}) // true jQuery.isEmptyObject({ foo: "bar" }) // false
亦可以用JavaScript中的一個方法,Object.getPropertyNames()返回除原型屬性以外的所有屬性(包括不可列舉的屬性)名組成的陣列
因為他的返回值是一個數組,可以用返回值的length是否為0來判斷
function bools(){ if(Object.getOwnPropertyNames(msg.d).length ===0)return false;//返回false,為空物件
return true;}
//返回true,不為空物件
console.log(bools({}));
檢測物件是否是空物件(不包含任何可讀屬性)。
方法只既檢測物件本身的屬性,不檢測從原型繼承的屬性。
1 function isOwnEmpty(obj) 2 { 3 for(var name in obj) 4 { 5 if(obj.hasOwnProperty(name)) 6 { 7 return false;//返回false,不為空物件
8 } 9 } 10 return true;//返回true,為空物件
11 };
{} 與 null 的區別:
1 var a = {}; 2 var b = null; 3 4 a.name = 'realwall'; 5 b.name = 'jim'; //這裡會報錯,b為空指標物件,不能像普通物件一樣直接新增屬性。 6 b = a; 7 b.name = 'jim'; //此時 a 和 b 指向同一個物件。a.name, b.name 均為'jam'