JS对象判空

这篇具有很好参考价值的文章主要介绍了JS对象判空。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  const sym = Symbol('sym')
  let obj = {
    a: 1,
    b: 2,
  }
  let obj2 = Object.create(obj, {
    [sym]: {
      value: 3,
      enumerable: true
    },
    c: {
      value: 4,
      enumerable: false
    },
    d: {
      value: 5,
      enumerable: true
    }
  })

第一种:Object.getOwnPropertyNames()  获取自身对象中所有的属性名,但是不包含Symbol!返回一个数组,不论属性描述符是否是可枚举的

function isEmpty1(obj) {
    return Object.getOwnPropertyNames(obj).length === 0;
  }
console.log(Object.getOwnPropertyNames(obj2), 'getOwnPropertyNames'); // c、d

第二种:Object.keys()  获取自身对象中所有可枚举的属性名,但是不包含Symbol

function isEmpty2(obj) {
    return Object.keys(obj).length === 0;
  }
console.log(Object.keys(obj2), 'keys'); // d

第三种:JSON.stringify()  序列化一个对象,返回自身对象中所有可枚举的属性名,但是不包含Symbol

 function isEmpty3(obj) {
    return JSON.stringify(obj) === '{}';
  }
 console.log(JSON.stringify(obj2), 'stringify'); // {"d":5}

第四种:in  查找自身对象或对象的原型[prototype]中某一个可枚举的属性名,但是不包含Symbol

function isEmpty4(obj) {
    let flag = false
    for (let key in obj) {
      if (obj.hasOwnProperty(key)) {
        flag = true
        break
      }
    }
    return flag
  }
 for (let key in obj2) {
    console.log(key, 'in') // d、a、b
  }

第五种:Reflect.ownKeys()  获取自身对象中所有的属性名,包含Symbol!不论属性描述符是否是可枚举的!返回一个数组

function isEmpty5(obj) {
    return Reflect.ownKeys(obj).length === 0
  }
console.log(Reflect.ownKeys(obj2), 'ownKeys'); // Symbol(sym)、c、d

依综上所述推荐第五种文章来源地址https://www.toymoban.com/news/detail-661039.html

到了这里,关于JS对象判空的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大型医院云HIS系统:采用前后端分离架构,前端由Angular语言、JavaScript开发;后端使用Java语言开发 融合B/S版电子病历系统

    一套医院云his系统源码 采用前后端分离架构,前端由Angular语言、JavaScript开发;后端使用Java语言开发。融合B/S版电子病历系统,支持电子病历四级,HIS与电子病历系统均拥有自主知识产权。 文末卡片获取联系! 基于云计算技术的B/S架构的医院管理系统(简称云HIS),采用前后

    2024年02月03日
    浏览(50)
  • 前端jd要求:了解一门后端开发语言优先 解决方案之Node.js

    作为前端开发者,了解一门后端开发语言可以为我们提供更多的职业机会和技术优势。在当今的技术领域中,前后端分离的开发模式已经成为主流,前端和后端的协作和沟通变得越来越紧密。因此,作为前端开发者,学习一门后端语言已经成为提高自己技能的重要途径。 以下

    2024年02月12日
    浏览(52)
  • JavaScript:js数组/对象遍历方法

    一、js遍历方法 序号 方法 描述 1 for 使用最基本的for循环可以遍历数组 2 for of for...of语句用来遍历可迭代对象(包括数组、Set、Map、字符串等),它可以替代传统的for循环和forEach()方法。for...of循环每次迭代都将返回一个值,而不是索引。 3 for in for...in语句用来遍历对象的可

    2024年02月09日
    浏览(56)
  • 除了three.js,还有许多其他前端开发语言和库可以用于创建3D可视化大屏

    hello老铁们...本人熟悉html5,vue对bootsrap,uniapp,layui,element,vite,antd,echarts,jq响应式尤其擅长,ui设计等技能,如果ui前端工作中有遇到烦恼可私信关注评论我们共同交流进步!谢谢       随着前端技术的飞速发展,3D可视化已经成为许多应用场景中不可或缺的一部分。在

    2024年03月15日
    浏览(72)
  • java怎么对对象的每一个字段都判空?

    可以通过反射机制,对 Java 对象中的每一个字段进行判空操作 我们定义了一个  isObjectFieldsNull  方法,该方法接受一个 Java 对象作为参数,使用反射机制遍历该对象中的每一个字段,如果有任何一个字段不为空,则返回  false ;如果所有字段都为空,则返回  true 。 需要注意

    2024年02月10日
    浏览(31)
  • jQuery.js - 前端必备的Javascript库

    作者: WangMin 格言: 努力做好自己喜欢的每一件事 jQuery.js 是什么? jQuery是一个快速简洁、免费开源易用的JavaScript框架, 倡导写更少的代码,做更多的事情 。它封装JavaScript常用的功能代码,提供了一种简便的JavaScript设计模式,以及我们开发中常用到的操作DOM的API,优化HTML文

    2024年02月05日
    浏览(77)
  • web前端框架JS学习之JavaScript类型转换

    vascript有多种数据类型,如字符串、数字、布尔等,可以通过typeof语句来查看变量的数据类型。数据类型转换就是数据类型之间相互转换,比如把数字转成字符串、把布尔值转成字符串、把字符串转成数字等,这在工作也是经常碰到的。 本期我们就给大家说说web前端框架JS学

    2024年02月10日
    浏览(64)
  • 【Js 前端面向对象编程具体该怎么做】

    在 JavaScript 中,面向对象编程可以通过以下方式实现: 使用构造函数创建对象:使用构造函数可以创建具有相同属性和方法的多个对象。 例子: 使用原型创建对象:使用原型可以在多个对象之间共享属性和方法,从而减少内存的占用。 例子: 继承:可使用原型继承创建一

    2024年02月16日
    浏览(45)
  • 【JS】前端base64转图片File对象

    base64ToFile.js

    2024年02月05日
    浏览(60)
  • 〖大前端 - 基础入门三大核心之JS篇㉓〗- JavaScript 的「数组」

    当前子专栏 基础入门三大核心篇 是免费开放阶段 。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费开放 , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:除了通过订阅\\\"白宝书系列专

    2024年02月04日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包