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对象的的判空可以说是一个坑,所以大家在实际项目中一定要注意!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值