JavaScript中怎么判断对象是否为空
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章将为大家详细讲解有关JavaScript中怎么判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在自己的日常开发中,一般使用Object.key
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
郑州能通网络技术有限公司
租用服务器的作用
服务器管理工资高
温州共赢网络技术有限公司
佛山市昇昊软件开发有限公司
网络安全 教材
vba的数据库
数据库属于哪种知识产权
那些国家搞DNA数据库
数据库系统原理自考押题
松江区国际软件开发售后保障
服务器管理要具备哪些
软件开发的是理工男吗
网络安全实验报告模板
软件开发公司如何做业务
网络安全讲演视频
信息技术网络技术应用考试
服务器可以放普通主板吗
合众互联网科技有限公司
工信部促进网络安全
鄂州服务器回收怎样收费
小白网络技术讲座
软件开发课程故事夏天
梦幻西游龙拳服务器内战
蓝海互联网科技公司的崛起
数据库营销的商业价值
数据库几种模型
ftp服务器停止访问
服务器名字
海安专业网络技术推荐咨询