最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
JavaScript 如何判断对象是否为空
时间:2026-07-11 11:11:47 编辑:袖梨 来源:一聚教程网
判断对象是否为空最可靠的方法是Object.keys(obj).length === 0,需先检查obj不为null且为非数组的对象,其他方法如JSON.stringify或for...in存在性能或兼容性问题。
判断一个对象是否为空,核心是看它是否拥有可枚举的自身属性。最可靠、兼容性好且语义清晰的方式是使用 Object.keys(obj).length === 0。
用 Object.keys() 检查自身可枚举属性
这是最常用也最推荐的方法。它只返回对象自身的、可枚举的属性名数组,不包括原型链上的属性或不可枚举属性(如 constructor)。
- 空对象
{}返回空数组[],长度为 0 - 含属性的对象(如
{a: 1})返回非空数组,长度大于 0 - 注意:该方法对
null或undefined会报错,使用前建议先做类型检查
处理 null 和 undefined 的安全写法
实际开发中,变量可能尚未初始化或被设为 null,直接调用 Object.keys 会抛出错误。可以这样加固:
obj !== null && typeof obj === 'object' && Object.keys(obj).length === 0- 更简洁的写法:
obj && typeof obj === 'object' && !Array.isArray(obj) && Object.keys(obj).length === 0(同时排除数组)
其他方法的适用场景与局限
有些方法看似可行,但存在边界问题:
立即学习“Java免费学习笔记(深入)”;
-
JSON.stringify(obj) === '{}':能工作,但性能较差,且对含有undefined、函数、Symbol 属性的对象会丢失信息或报错 -
for...in循环 +hasOwnProperty:可行,但代码稍长,易漏掉hasOwnProperty判断导致误判原型属性 -
Object.entries(obj).length === 0:效果同Object.keys,ES2017+ 支持,语义更明确(键值对维度),但兼容性略低
简单封装成工具函数
如果项目中多次用到,可封装为复用函数:
function isEmptyObject(obj) {return obj !== null
&& typeof obj === 'object'
&& !Array.isArray(obj)
&& Object.keys(obj).length === 0;
}
相关文章
- 火车票余票如何查询-火车票余票查询步骤与官方购票方法 07-17
- 怪物生存战争新手攻略大全 怪物生存战争零基础入门与生存技巧详解 07-17
- 豆包AI在线使用-豆包AI官方网页版直达入口 07-17
- 三国伏魔录新手入门指南 三国伏魔录详细玩法与快速上手教程 07-17
- 奈斯漫画首页登录下载版本怎么进-奈斯漫画免费漫画页面在线看漫画版本观看 07-17
- 创游世界网页端入口-创游世界下载入口 07-17