JavaScript中怎么判断对象是否为空
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章将为大家详细讲解有关JavaScript中怎么判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在自己的日常开发中,一般使用Object.key
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
超聚变服务器的影响力
数据库建立查询并计算销售额
坎公骑冠剑新服务器
数据库规范化解决问题
什么是服务器主机
侏罗纪世界手游服务器连接失败
湖南科技职业学院软件开发
网络安全安全教育教案幼儿园大班
小幽灵网络技术论坛号
软件开发公司利用区块链
计算器网络技术上物理吗
网络安全班记录
郑州上位机软件开发
网络显示服务器名称无效
澄城县网络安全宣传
社交平台网络安全防范
嗯中小学生家庭教育与网络安全
软件开发学习好吗
polardb地图数据库
月薪17k软件开发
服务器远程端口修改
apex国内玩的是哪个服务器
魔兽怀旧版有几个pve服务器
数据库产品 韩国
网络安全法自日起施行
天象网络技术有限公司总部
正规软件开发厂家
地铁中数据库技术的应用
豪恒网络技术有限公司
网络安全实训心得1000字