js-判断一个object(对象)是否为空

1.Object.keys() 方法

javascript 复制代码
const obj = {};

if (Object.keys(obj).length === 0) {
  console.log('Object is empty');
} else {
  console.log('Object is not empty');
}

Object.keys() 方法返回一个包含对象自身可枚举属性名称的数组。如果这个数组为空,那么对象就是空的。

2.JSON.stringify()方法

javascript 复制代码
const obj = {};

if (JSON.stringify(obj) === '{}') {
  console.log('Object is empty');
} else {
  console.log('Object is not empty');
}

将一个JavaScript对象转换为JSON字符串。如果对象为空,那么转换后的字符串就是 {}

3. 使用 for...in 循环

javascript 复制代码
const obj = {};

let isEmpty = true;
for (let key in obj) {
  isEmpty = false;
  break;
}

if (isEmpty) {
  console.log('Object is empty');
} else {
  console.log('Object is not empty');
}

for...in 循环可以遍历对象的所有可枚举属性。如果循环体没有执行,那么对象就是空的。

4.Reflect.ownKey()

javascript 复制代码
const obj = {};

if (Reflect.ownKey(obj).length === 0) {
  console.log('Object is empty');
} else {
  console.log('Object is not empty');
}

创建了一个空对象 obj,然后使用 Reflect.ownKey() 方法获取这个对象的所有属性键。由于 obj 是空的,所以 Reflect.ownKey(obj) 返回一个空数组。因此,Reflect.ownKey(obj).length === 0true,表示对象是空的。

可以用来判断一个对象是否为空,但它只能判断对象自身的属性,不能判断对象的原型链上的属性。

如果需要判断对象及其原型链上的所有属性,用Object.getOwnPropertyNames() 或 Object.getOwnPropertySymbols() 方法。

相关推荐
小白学过的代码4 分钟前
videojs增加视频源选择框小工具
javascript·vue.js·音视频
Promise52014 分钟前
用油猴脚本实现用户身份快速切换
前端·javascript
玲玲51215 分钟前
vue3组件通信:defineEmits和defineModel
前端
温柔532921 分钟前
仓颉语言异常捕获机制深度解析
java·服务器·前端
温宇飞29 分钟前
ECS 系统的一种简单 TS 实现
前端
shenshizhong31 分钟前
鸿蒙HDF框架源码分析
前端·源码·harmonyos
凌晨起床39 分钟前
Vue3 对比 Vue2
前端·javascript
clausliang43 分钟前
实现一个可插入变量的文本框
前端·vue.js
yyongsheng44 分钟前
SpringBoot项目集成easy-es框架
java·服务器·前端
fruge1 小时前
前端工程化流程搭建与配置优化指南
前端