在自己的日常开发中,一般使用Object.keys()
来判断对象是否为空:
const obj = {};
Object.keys(obj).length === 0 // true 则为空对象
而在一篇文章中却是如此判断:
const obj = {};
Object.keys(obj).length === 0 && obj.constructor === Object
为什么还要额外判断对象的constructor
呢?即构造函数呢?
Object.keys()
Object.keys()
方法会返回一个由一个给定对象的自身可枚举属性组成的数组。
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // ['0', '1', '2']
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj); // ['0', '1', '2']
</