JS常用判断object是否为空的方法

1,321 阅读1分钟

一、使用es6方法 (推荐)

function isEmptyObject(obj){
    if(obj && Object.keys(obj).length === 0 && obj.constructor === Object) return true
    return false
}
  • 避免传参nullundefined报错
  • 使用Object.keys()判断对象key的数量
  • 避免js内置构造函数也返回true

二、 通过原型判断(当浏览器不支持es6时使用)

function isEmptyObject(obj){
    if(Object.prototype.toString.call(obj) === '[object Object]' &&  JSON.stringify(obj) === '{}'){
        return true
    }
    return false
}

三、通过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()

参考: