1.使用es6方法 (推荐)
function isEmptyObject(obj){
if(obj && Object.keys(obj).length === 0 && obj.constructor === Object) return true
return false
}
- 避免传参
null
、undefined
报错 - 使用
Object.keys()
判断对象key的数量 - 避免
js
内置构造函数也返回true
2. 通过原型判断(当浏览器不支持es6时使用)
function isEmptyObject(obj){
if(Object.prototype.toString.call(obj) === '[object Object]' && JSON.stringify(obj) === '{}'){
return true
}
return false
}
3.通过for...in 和 hasOwnProperty
function isEmptyObject(obj){
for(let key in obj){
if(obj.hasOwnProperty(key)){
return false
}
}
return true
}
4.使用lodash第三方库
import _ from 'lodash';
_.isEmpty()
参考:
网友评论