javascript 对象判空

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,则判定对象为空
    }  

JavaScript对象的的判空可以说是一个坑,所以大家在实际项目中一定要注意!

你可能感兴趣的:(jquery,javascript,javascript,对象,json,jquery)