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() 方法。

相关推荐
奔跑的web.1 分钟前
Vue 3.6 重磅新特性:Vapor Mode 深度解析
前端·javascript·vue.js
MediaTea2 分钟前
Python OOP 设计思想 13:封装服务于演化
linux·服务器·前端·数据库·python
唐璜Taro2 分钟前
2026全栈开发AI智能体教程(开篇一)
javascript·langchain
爱敲代码的婷婷婷.3 分钟前
patch-package 修改 node_modules流程以及注意点
前端·react native·前端框架·node.js
这是个栗子7 分钟前
【API封装参数传递】params 与 API 封装
开发语言·前端·javascript·data·params
Irene199112 分钟前
Vue3 <script setup> 中,async 通常不能省略
vue.js·async·await
凌栀茗15 分钟前
html第二天
前端·javascript·html
你脸上有BUG16 分钟前
CSS实现透明内层+渐变边框的优雅方案
前端·css·毛玻璃
Amumu1213824 分钟前
Redux介绍(一)
前端·javascript·react.js
旭日猎鹰25 分钟前
配置ReactNative环境并创建第一个程序
javascript·react native·react.js