JavaScript中判断空对象的几种方法

167 阅读1分钟

var obj = {};

  1. 转化成 Json 字符串

console.log(JSON.stringify(obj)==="{}");

  1. 利用Es6 遍历对象的属性: Object.keys(obj)

console.log(Object.keys(obj).length===0);

  1. 利用Es6 遍历对象的属性:Object.getOwnPropertyNames(obj)

console.log(Object.getOwnPropertyNames(obj).length===0)

  1. 利用Es6 遍历对象的属性:Reflect.ownKeys(obj)

console.log(Reflect.ownKeys(obj).length===0)

  • IE兼容有问题,提示:“Reflect”未定义

Object.keys(obj)、Object.getOwnPropertyNames(obj)、Reflect.ownKeys(obj) 返回的都是一个数组,用数组长度,就能判断是否空对象了!

  1. jQuery 源码里判断空对象:for ... in
function isEmptyObject(){
    var name;
    for (name in obj) {
        return false;
    }
    return true;
}
console.log(isEmptyObject(obj));

jQuery 用法

console.log($.isEmptyObject(obj));