当前位置:首页 » 《资源分享》 » 正文

JS判断对象为空的方法 ( 6种)

3 人参与  2024年10月02日 17:21  分类 : 《资源分享》  评论

点击全文阅读


还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。

在这里插入图片描述

No.内容链接
1Openlayers 【入门教程】 - 【源代码+示例300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3Cesium 【入门教程】 - 【源代码+图文示例200+】
4MapboxGL【入门教程】 - 【源代码+图文示例150+】
5前端就业宝典 【面试题+详细答案 1000+】

文章目录

1.使用 `Object.keys()` 方法2. 使用 `for...in` 循环3. 使用 `JSON.stringify()`4. 使用 `Object.getOwnPropertyNames()` 或 `Object.getOwnPropertySymbols()`5. 使用 `Reflect.ownKeys()`6. 使用 `Object.entries()` 或 `Object.getOwnPropertyDescriptors()`


在这里插入图片描述

在JavaScript中,判断一个对象是否为空(即没有可枚举的自身属性)可以通过几种不同的方法实现。以下是几种常见的方法及其示例代码:

1.使用 Object.keys() 方法

const obj = {};if (Object.keys(obj).length === 0) {    console.log('对象为空');} else {    console.log('对象不为空');}

2. 使用 for...in 循环

const obj = {};let isEmpty = true;for (const key in obj) {    if (obj.hasOwnProperty(key)) {        isEmpty = false;        break;    }}if (isEmpty) {    console.log('对象为空');} else {    console.log('对象不为空');}

3. 使用 JSON.stringify()

注意这种方法会将对象转换为字符串,可能会有一些性能开销,并且不能区分 null 和空对象 {}

const obj = {};if (JSON.stringify(obj) === '{}') {    console.log('对象为空');} else {    console.log('对象不为空');}

4. 使用 Object.getOwnPropertyNames()Object.getOwnPropertySymbols()

这两个方法分别返回对象自身的属性名和符号属性的数组,可以用来判断对象是否为空。

const obj = {};if (Object.getOwnPropertyNames(obj).length === 0 && Object.getOwnPropertySymbols(obj).length === 0) {    console.log('对象为空');} else {    console.log('对象不为空');}

5. 使用 Reflect.ownKeys()

这个方法返回一个包含对象自身所有键(包括不可枚举属性和符号键)的数组。

const obj = {};if (Reflect.ownKeys(obj).length === 0) {    console.log('对象为空');} else {    console.log('对象不为空');}

6. 使用 Object.entries()Object.getOwnPropertyDescriptors()

这两种方法可以返回对象的所有可枚举属性的键值对数组或描述符对象,如果数组长度为0,则说明对象为空。

const obj = {};if (Object.entries(obj).length === 0) {    console.log('对象为空');} else {    console.log('对象不为空');}

通常情况下,Object.keys()for...in 循环结合 hasOwnProperty 检查是最常用的两种方法,它们提供了较好的性能和兼容性。但是,在处理包含符号属性或不可枚举属性的对象时,Reflect.ownKeys()Object.getOwnPropertyNames()/Object.getOwnPropertySymbols() 更为全面。


点击全文阅读


本文链接:http://zhangshiyu.com/post/167245.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 京圈佛子破戒后,我改嫁京圈纨绔(沈墨渊,白晶晶)
  • 前世被闺蜜害死,重生后我让她从太子妃变疯女苏婉儿,清歌完本_前世被闺蜜害死,重生后我让她从太子妃变疯女(苏婉儿,清歌)
  • 全书浏览七零军嫂太彪悍,带三宝上军区离婚(沈清落,陈桂花,陆有为)_七零军嫂太彪悍,带三宝上军区离婚(沈清落,陈桂花,陆有为)全书结局
  • 今天也没变成昨天(周扬陈默)全书免费_(周扬陈默)今天也没变成昨天后续(周扬陈默)
  • 重生后,秦总非要父以子贵(许沐晴,秦越泽)全书浏览_重生后,秦总非要父以子贵全书浏览
  • 他嫌弃我喝两块钱豆浆上不了台面,我结婚后他又哭又闹全书万照,白青青在线
  • 昭然若梦前尘烬列表_昭然若梦前尘烬(温昭然方池雲)
  • 导师借我股票账号,我倒欠五十万(孟潇潇,宁薇)_导师借我股票账号,我倒欠五十万孟潇潇,宁薇
  • 拒绝把外卖券给舍友,竹马送我到迪拜捡垃圾(周钰泽,蒋清清,思源)全书浏览_拒绝把外卖券给舍友,竹马送我到迪拜捡垃圾全书浏览
  • 我的人生,你已出局(程森凌古楚文)_我的人生,你已出局程森凌古楚文
  • 穿书成病娇女配,睁眼就签下离婚协议书(朱楼)_穿书成病娇女配,睁眼就签下离婚协议书
  • 老婆逼我给白月光捐肾,我死后她悔疯了(宋逸晨沈墨白)全书浏览_老婆逼我给白月光捐肾,我死后她悔疯了全书浏览

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1