在 JavaScript 开发过程中,不可避免的一项操作就是检查对象是否为空,而 JavaScript 官方并没有提供标准函数,本文就介绍一下在不同的情况下使用 JavaScript 检查对象是否为空的方法。
对于现代浏览器,您可以使用原生 JS 语句或“Object.keys”,对于较旧的浏览器支持,您可以使用第三方库,比如安装 Lodash 库并使用他们的“isEmpty”方法。
const empty = {}; /* ------------------------- 对于现代浏览器使用最新的 JS 原生方法 ----------------------------*/ Object.keys(empty).length === 0 && empty.constructor === Object // true /* ------------------------- 使用 Lodash 库的 isEmpty 方法(兼容旧版本浏览器) ----------------------------*/ _.isEmpty(empty) // true
A. 现代浏览器中的空对象检查
在现代浏览器中,我们可以使用内置Object.keys
方法来检查空对象。
const empty = {}; Object.keys(empty).length === 0 && empty.constructor === Object;
B. 旧浏览器中的空对象检查
对于旧版本浏览器,我们仍然可以选择使用原生 js 代码检查,也可以使用第三方库。
B.1 在旧版本浏览器中使用原生 js 代码检查空对象
function isObjectEmpty(value) {
return (
Object.prototype.toString.call(value) === '[object Object]' &&
JSON.stringify(value) === '{}'
);
}
isObjectEmpty({}); // true ✅
isObjectEmpty(new Object()); // true ✅
B.2 在旧版本浏览器中使用第三方库检查空对象
Lodash (IE11)
_.isEmpty({});
// true
jQuery (IE9+)
jQuery.isEmptyObject({});
// true