js判断对象是否为空对象的方法总结
- 方法1:JSON.stringify()方法
- 方法2:for in方法
- 方法3:Object.keys()方法
- 方法4:Object.getOwnPropertyNames()方法
- 方法5:jquery 的 isEmptyObject()方法
在面试或者开发过程中,我们经常会遇到这样一个问题——如何判断一个对象是否为空对象?下面让我们一起来总结一下吧!
方法1:JSON.stringify()方法
- 原理:将对象转换成字符串,再判断是否等于“{}”
let obj = {};
console.log(JSON.stringify(obj) === "{}"); // true
方法2:for in方法
var obj = {};
var fn = function () {for (var key in obj) {return false; // 若不为空,可遍历,返回false}return true;
};
console.log(fn()); // true
方法3:Object.keys()方法
- 原理:Object.keys()方法,返回对象的属性名组成的一个数组,若长度为0,则为空对象(ES6的写法)
let obj = {};
let arr = Object.keys(obj);
console.log(arr.length == 0); // true
方法4:Object.getOwnPropertyNames()方法
- 原理:Object.getOwnPropertyNames()方法获取对象的属性名,存到数组中,若长度为0,则为空对象。
var obj = {};
var arr = Object.getOwnPropertyNames(obj);
console.log(arr.length == 0); // true
方法5:jquery 的 isEmptyObject()方法
- 原理:利用for in的方式来判断(注意:使用这种方式记得引用jquery)。
var obj = {};
var b = $.isEmptyObject(obj);
console.log(b); // true