javascript中对于一般数据类型判空或者判定为假可以直接使用 ! ,但是对于对象,这种判定方法不准确,例如
var obj={}
if(!obj){
console.log('null');
}else{
console.log('not null');
}
在这段代码中很明显对象为空,但是返回的结果却为not null,所以我们要利用对象的特性来判断一个对象是否为空
对象转json字符串之后根据字符串形式来判定
var obj = {};
//空对象转为json字符串之后为‘{}’
if(JSON.stringify(obj) == “{}”){
console.log(‘null’);
}else{
console.log(‘not null’);
}参考jQuery源码中的isEmptyObject()方法,遍历对象根据是否有属性判空
function isEmptyObject(e) {
var t;
for (t in e)
return !1; //若对象有属性则返回false,即非空
return !0 //遍历完对象之后无属性返回true,则判定对象为空
}