JavaScript中怎么判断对象是否为空
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关JavaScript中怎么判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在自己的日常开发中,一般使用Object.key
千家信息网最后更新 2026年11月01日JavaScript中怎么判断对象是否为空
这篇文章将为大家详细讲解有关JavaScript中怎么判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在自己的日常开发中,一般使用Object.keys()来判断对象是否为空:
const obj = {};Object.keys(obj).length === 0 // true 则为空对象而在一篇文章中却是如此判断:
const obj = {};Object.keys(obj).length === 0 && obj.constructor === Object为什么还要额外判断对象的constructor呢?即构造函数呢?
Object.keys()
MDN 中关于Object.keys()的介绍:
Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组。
示例
var arr = ['a', 'b', 'c'];console.log(Object.keys(arr)); // ['0', '1', '2']var obj = { 0: 'a', 1: 'b', 2: 'c' };console.log(Object.keys(obj); // ['0', '1', '2']为什么需要额外判断对象的构造函数呢?
文章作者写到是为了覆盖包装器实例(当时看到这有点懵逼????),后面则解释清楚了。 在 JavaScript 中,有9个内置构造函数。
new Object();new String();new Number();new Boolean();new Array();new RegExp();new Function();new Date();new Error();
我们可以使用这些构造函数来创建对象,例如:new Object()(日常不推荐使用)。
const obj = new Object();Object.keys(obj).length === 0; // true
平常使用的判断方法也没问题啊????????????
但是当使用剩下的内置构造函数创建就会出现问题。
function badEmptyCheck(value) { return Object.keys(value).length === 0;}badEmptyCheck(new String()); // truebadEmptyCheck(new Number()); // truebadEmptyCheck(new Boolean()); // truebadEmptyCheck(new Array()); // truebadEmptyCheck(new RegExp()); // truebadEmptyCheck(new Function()); // truebadEmptyCheck(new Date()); // truebadEmptyCheck(new Error();); // true是不是有点明白了?
在添加构造函数判断后:
function goodEmptyCheck(value) { return Object.keys(value).length === 0 && value.constructor === Object;}goodEmptyCheck(new String()); // falsegoodEmptyCheck(new Number()); // falsegoodEmptyCheck(new Boolean()); // falsegoodEmptyCheck(new Array()); // falsegoodEmptyCheck(new RegExp()); // falsegoodEmptyCheck(new Function()); // falsegoodEmptyCheck(new Date()); // falsegoodEmptyCheck(new Error();); // false结果正确,实际上是我们对边界情况进行了处理。
另一种边界情况
Object.keys(null).length === 0; // TypeErrorObject.keys(undefined).length === 0; // TypeError
处理方法也很简单:
function goodEmptyCheck(value) { return value && Object.keys(value).length === 0 && value.constructor === Object;}关于"JavaScript中怎么判断对象是否为空"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
对象
函数
篇文章
方法
情况
文章
更多
边界
问题
处理
不错
实用
平常
清楚
作者
内容
实例
实际
实际上
属性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海喔噻互联网科技有限公司
高科技互联网
互联网科技官网
互联网和科技创新
上海互联网科技有限公司
金融科技 互联网金融
互联网金融科技平台
兼蜜互联网科技
甘肃拓世互联网科技有限公司
互联网科技公司招聘
互联网教育科技公司vipkid
互联网对科技的发展
重庆互联网医院沙龙医盟信息科技
新兴科技互联网创新大赛颁奖典礼
互联网科技如何创业
宇信科技在杭州互联网排第几
互联网硬科技公司
张家口科技产业互联网平台
北京天晋互联网科技有限公司
黑龙江互联网科技公司
西安纸贵互联网科技有限公司
金诺互联网科技
万易互联网科技
世界互联网领先科技成果
互联网科技公司有哪些
重庆科技学院互联网
现代科技和互联网有关系吗
广州优美互联网科技
图游互联网科技
云鲸互联网络科技有限公司