js判斷對象是否為空對象的幾種方法

1、將JSON對象轉化為json字符串,再判斷該字符串是否為"{}"
var data = {}
var b =(JSON.stringify(data) == "{}");
alert(b); // true
2、for in 循環(huán)
var obj ={}
var  b = function(){
  for (var key in obj){
    return false
  }
  return  true
}
alert(b());// true
3、jquery的isEmptyObject方法

此方法是jquery將2方法(for in)進行封裝,使用時需要依賴jquery

var data = {}
var b =$.isEmptyObject(data);
alert(b); //true
4、Object.getOwnPropertyNames()方法

此方法是使用Object對象的getOwnPropertyNames方法,獲取到對象中的屬性名,存到一個數(shù)組中,返回數(shù)組對象,我們可以通過判斷數(shù)組的length來判斷此對象是否為空。
此方法不兼容IE8,其余未測試

var data  = {}
var arr =Object.getOwnPropertyNames(data);
alert(arr.length === 0) //true
5、使用ES6的Object.keys()方法

與4方法類似,是ES6的新方法,返回值也是對象中屬性名組成的數(shù)組

var data = {}
var arr = Object.keys(data);
alert(arr.length ==0) //true

有大佬說,for in循環(huán)只適合原型鏈為空對象的情況;使用Object.keys和Object.getOwnPropertyNames對symbol的key無效,建議使用Reflect.keys方法,有興趣的同學可以動手測試。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容