方法一 for...in
通过for...in遍历属性,如果是空对象返回false,否则返回true
例:
varjudgeObj =function(obj){for(variteminobj){returntrue; }returnfalse;}
当对象中k值不存在的话,得到的k为undefined,即false,那么就是空对象。
方法二 Object.keys()
通过ES6新增的一个Object.keys()方法
该方法会返回一个由给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in.. 循环遍历该对象时返回的顺序一致 。即可以通过返回数组的长度来判断是否为空对象,若为空对象,该数组长度为0。
附:
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致 (两者的主要区别是 for-in 循环还会枚举其原型链上的属性)。
利用该方法判断Object是否为空
const obj = {}
Object.keys(obj).length = 0 ?yes:no // yes