一、支持 Object.keys 情况下
- 排除
undefined、null等报错 - 判断是否含
key - 通过构造函数排除包装类,如
new String()、new Boolean()等情况
function isEmptyObject(val) {
return val && Object.keys(val).length === 0 && val.constructor === Object
}
二、不支持 Object.keys 时
function isEmptyObject(val) {
return Object.prototype.toString.call(val) === '[object Object]' && JSON.stringify(val) === '{}'
}
三、使用第三方 JS 库
// Lodash
_.isEmpty(val)
// Underscore
_.isEmpty(val)
// jQuery
$.isEmptyObject(val)










