判断一个对象是否为空对象

var foo = {
    a: 'name',
    b: null,
    c: undefined,
    d: function () { },
    e: Symbol(),
    [Symbol('bar')]: 25
}

Object.defineProperty(foo, 'f', {
    value: 42,
    enumerable: false
});

foo.__proto__ = {
    g: 233
}

// console.log(Object.values(foo));
[ 'name', null, undefined, [Function: key4], Symbol() ] (不包括不可枚举属性但不包括Symbol值作为名称的属性)

Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。


Object.getOwnPropertyDescriptors() 方法用来获取一个对象的所有自身属性的描述符。 (包括Symbol属性和不可枚举属性)
// const baz = Object.getOwnPropertyDescriptors(foo)

// console.log(Reflect.ownKeys(foo)); //[ 'a', 'b', 'c', 'd', 'e', 'f', Symbol(bar) ]
// Reflect.ownKeys 方法返回一个由目标对象自身的属性键组成的数组。它的返回值等同于Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target))。

判断一个对象是否为空对象
function isEmptyObj(obj) {
    return Reflect.ownKeys(obj).length > 0 ? false : true
}
console.log(isEmptyObj(foo)); // false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值