今天俺跟大家分享一下js中如何检测空对象,如var a = {}; 对象a即是一个空对象,因为它不含有任何属性。
Javascript实现方式
ES7实现方式
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ // 因为 Object.entries(new Date()).length === 0; // 因此我们不得不多做一步检查=>obj.constructor ===Object Object.entries(obj).length === 0 && obj.constructor === Object
ES5实现方式
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ // 因为 Object.entries(new Date()).length === 0; // 因此我们不得不多做一些检查 Object.keys(obj).length === 0 && obj.constructor === Object
ES5之前实现方式
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ function isEmpty(obj) { for(var prop in obj) { if(obj.hasOwnProperty(prop)) { return false; } } return JSON.stringify(obj) === JSON.stringify({}); }
框架实现方式
jQuery
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ jQuery.isEmptyObject({}); // true
loadsh
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ _.isEmpty({}); // true
Underscore
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ _.isEmpty({}); // true
Hoek
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ Hoek.deepEqual({}, {}); // true
ExtJS
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ Ext.Object.isEmpty({}); // true
AngularJS (version 1)
/** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.net/ */ angular.equals({}, {}); // true
Ramda
R.isEmpty({}); // true
相关框架链接