JavaScript 判断对象为空

发布于 2023-05-10 15:16:52 字数 776 浏览 41 评论 0

一、支持 Object.keys 情况下

  • 排除 undefinednull 等报错
  • 判断是否含 key
  • 通过构造函数排除包装类,如 new String()new Boolean() 等情况

这种方法有个不足的是,倘若通过 let emptyObj = Object.create(null) 创建空对象,那么 emptyObj.constructor === Object 就不成立了。

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

温柔戏命师

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

eins

文章 0 评论 0

世界等同你

文章 0 评论 0

毒初莱肆砂笔

文章 0 评论 0

初雪

文章 0 评论 0

miao

文章 0 评论 0

qq_zQQHIW

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文