iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JavaScript中怎么判断对象是否为空
  • 855
分享到

JavaScript中怎么判断对象是否为空

2023-06-29 05:06:15 855人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关javascript中怎么判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在自己的日常开发中,一般使用Object.keys()来判断对象是否为空:const&n

这篇文章将为大家详细讲解有关javascript中怎么判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    在自己的日常开发中,一般使用Object.keys()来判断对象是否为空:

    const obj = {};Object.keys(obj).length === 0  // true 则为空对象

    而在一篇文章中却是如此判断:

    const obj = {};Object.keys(obj).length === 0 && obj.constructor === Object

    为什么还要额外判断对象的constructor呢?即构造函数呢?

    Object.keys()

    MDN 中关于Object.keys()的介绍:

    Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组

    示例

    var arr = ['a', 'b', 'c'];console.log(Object.keys(arr)); // ['0', '1', '2']var obj = { 0: 'a', 1: 'b', 2: 'c' };console.log(Object.keys(obj); // ['0', '1', '2']

    为什么需要额外判断对象的构造函数呢?

    文章作者写到是为了覆盖包装器实例(当时看到这有点懵逼????),后面则解释清楚了。 在 JavaScript 中,有9个内置构造函数。

    new Object();new String();new Number();new Boolean();new Array();new RegExp();new Function();new Date();new Error();

    我们可以使用这些构造函数来创建对象,例如:new Object()(日常不推荐使用)。

    const obj = new Object();Object.keys(obj).length === 0; // true

    平常使用的判断方法也没问题啊????????????

    但是当使用剩下的内置构造函数创建就会出现问题。

    function badEmptyCheck(value) {    return Object.keys(value).length === 0;}badEmptyCheck(new String()); // truebadEmptyCheck(new Number()); // truebadEmptyCheck(new Boolean()); // truebadEmptyCheck(new Array()); // truebadEmptyCheck(new RegExp()); // truebadEmptyCheck(new Function()); // truebadEmptyCheck(new Date()); // truebadEmptyCheck(new Error();); // true

    是不是有点明白了?

    在添加构造函数判断后:

    function GoodEmptyCheck(value) {    return Object.keys(value).length === 0 && value.constructor === Object;}goodEmptyCheck(new String()); // falsegoodEmptyCheck(new Number()); // falsegoodEmptyCheck(new Boolean()); // falsegoodEmptyCheck(new Array()); // falsegoodEmptyCheck(new RegExp()); // falsegoodEmptyCheck(new Function()); // falsegoodEmptyCheck(new Date()); // falsegoodEmptyCheck(new Error();); // false

    结果正确,实际上是我们对边界情况进行了处理。

    另一种边界情况

    Object.keys(null).length === 0;   // TypeErrorObject.keys(undefined).length === 0;  // TypeError

    处理方法也很简单:

    function goodEmptyCheck(value) {    return value && Object.keys(value).length === 0 && value.constructor === Object;}

    关于“JavaScript中怎么判断对象是否为空”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

    --结束END--

    本文标题: JavaScript中怎么判断对象是否为空

    本文链接: https://www.lsjlt.com/news/322594.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • JavaScript中怎么判断对象是否为空
      这篇文章将为大家详细讲解有关JavaScript中怎么判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在自己的日常开发中,一般使用Object.keys()来判断对象是否为空:const&n...
      99+
      2023-06-29
    • javascript如何判断对象是否为空
      这篇文章将为大家详细讲解有关javascript如何判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法:1、使用“JSON.stringify()”方法,将对象转化为json字符串,再判断...
      99+
      2023-06-14
    • java中怎么判断对象是否为空
      java中判断对象是否为空的方法:首先来看一下工具StringUtils的判断方法:一种是org.apache.commons.lang3包下的;另一种是org.springframework.util包下的。这两种StringUtils工...
      99+
      2016-03-01
      java
    • php判断对象是否为空
      if($users->count()==0){                    $result->errer = "not exist";                } php判断对象是否为空两种方法:1、网上很多方法分享说用em...
      99+
      2023-09-13
      java javascript 服务器
    • java判断对象是否为空
      对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序...
      99+
      2018-09-04
      java
    • 怎么在javascript中判断是否为对象
      本篇文章给大家分享的是有关怎么在javascript中判断是否为对象,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。判断方法:1、使用toString()来判断;2、使用“obj...
      99+
      2023-06-14
    • JavaScript中如何判断对象是否为空的方法
      目录Object.keys()示例为什么需要额外判断对象的构造函数呢?另一种边界情况总结在自己的日常开发中,一般使用Object.keys()来判断对象是否为空: const obj...
      99+
      2022-11-13
    • Vue中如何判断对象是否为空
      目录Vue判断对象是否为空方法一方法二Vue判断对象为空|cannot read property ‘xx‘ of undefined结构体如下解决方法v-f...
      99+
      2022-11-13
    • java对象如何判断是否为空
      在实际书写代码的时候,经常会因为对象为空,而抛出空指针异常java.lang.NullPointerException。下面我们来看一下java中判断对象是否为空的方法:(推荐:java视频教程)首先来看一下工具StringUtils的判断...
      99+
      2017-05-08
      java 对象
    • java判断集合对象是否为空
      Java 集合类中的 List.isEmpty() 方法用于判断集合对象是否为空,如果为空,则返回 true,否则返回 false。语法:isEmpty()应用:本示例使用 List 接口的实现类 ArrayList 初始化一个列表对象 l...
      99+
      2014-08-18
      java基础 java 判断 集合对象 为空
    • 如何判断java对象是否为空
      首先来看一下工具StringUtils的判断方法:一种是org.apache.commons.lang3包下的;另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距的:S...
      99+
      2017-08-03
      java入门 判断 java 对象
    • es6如何判断对象是否为空
      今天小编给大家分享一下es6如何判断对象是否为空的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。判断方法:1、用“Object...
      99+
      2023-07-04
    • java如何判断对象是否为空
      在Java中,可以使用以下方法来判断一个对象是否为空:1. 使用`==`运算符来判断对象是否为null。如果对象等于null,则表示...
      99+
      2023-08-17
      java
    • 怎么判断是否为jquery对象
      今天小编给大家分享一下怎么判断是否为jquery对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
      99+
      2022-10-19
    • java如何判断一个对象是否为空对象
      最近项目中遇到一个问题,在用户没填数据的时候,我们需要接收从前端传过来的对象为null,但是前端说他们一个一个判断特别麻烦,只能传个空对象过来,我第一个想法就是可以通过反射来判断对象...
      99+
      2022-11-13
    • 使用javascript怎么判断对象是否为数组
      使用javascript怎么判断对象是否为数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。javascript判断对象是否数组的方法:1、使用isArray方法,代码为【...
      99+
      2023-06-14
    • Java中如何判断一个对象是否为空
      在Java中,可以使用以下几种方法来判断一个对象是否为空:1. 使用 `==` 运算符判断是否为 `null`:通过将对象与 `nu...
      99+
      2023-09-25
      Java
    • JavaScript中怎么判断对象是否存在
      JavaScript中怎么判断对象是否存在,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。现在,我们要判断一个全局对象myObj是否存在,如...
      99+
      2022-10-19
    • es6判断对象是否为空的方法是什么
      在ES6中,可以使用`Object.keys()`方法来判断一个对象是否为空。该方法返回一个由对象的可枚举属性组成的数组,如果对象没...
      99+
      2023-10-09
      es6
    • java中判断对象中某个属性是否为空
      问题:java对象接受从数据库查出来的数据时,对对象的某一属性进行操作,在操作属性中存储的数据中不对进行检查,会出现空指针异常的情况。 问题再现:新建一个实体类 public class Student { private Integ...
      99+
      2023-09-11
      java 开发语言 mysql
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作