javascript中怎么判斷對象{}為空


有時候通過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'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM