JavaScript中怎么判断对象是否为空
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,这篇文章将为大家详细讲解有关JavaScript中怎么判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在自己的日常开发中,一般使用Object.key
千家信息网最后更新 2025年02月24日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安全错误
数据库的锁怎样保障安全
从事软件开发的个体户征收率
软件开发团队寻找
网络安全幼儿园亲子画
c 中往数据库保存数据库
香港合租服务器
天龙八部3服务器
常州打造智慧消防软件开发
软件开发技术研究生
吴中区正规服务器代理厂家
二次证据数据库
部门内部网络安全管理
初中生网络安全教育方案
王一博新歌让服务器故障
网络技术与安全两个方向
SQL服务器管理设置
数据库审计 问题
驱动装了还是没有网络安全
神奇宝贝我的世界下载服务器
数据库常用语句顺序
全球真菌感染数据库
网络安全产业园区长沙
智鼠东莞网络技术工作室
嵌入式软件开发市场前景
服务器管理器刷新失败
消费电子工厂生产管理软件开发
网络安全股票上市时间
工业互联网龙头 剑桥科技
主体在数据库中是什么意思
网络技术+大数据
完美选择服务器是啥意思