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方法,有興趣的同學可以動手測試。