zoukankan      html  css  js  c++  java
  • javascript中怎么判断对象{}为空

    有时候通过AJAX方法调用返回的是一个JSON对象,而这个对象可能在开发过程中会没有数据是一个空{}。

    JavaScript判断object/json 是否为空,可以使用jQuery的isEmptyObject()方法。

    function isEmptyObject(obj) {   
      for (var key in obj){
        return false;//返回false,不为空对象
      }  
      return true;//返回true,为空对象
    }
    console.log(isEmptyObject({
    "re": 2})); //false console.log(isEmptyObject({})); //true console.log(isEmptyObject(null)); //true //注意参数为null时无语法错误哦,即虽然不能对null空指针对象添加属性,但可以使用for in 语句 console.log(isEmptyObject(23)); //true console.log(isEmptyObject({"te": 2})); //false
    以上是实现这个方法的简单原理,在 jQuery 中直接调用方法即可。
    jQuery.isEmptyObject({}) // true
    jQuery.isEmptyObject({ foo: "bar" }) // false
     

    亦可以用JavaScript中的一个方法,Object.getPropertyNames()返回除原型属性以外的所有属性(包括不可枚举的属性)名组成的数组

    因为他的返回值是一个数组,可以用返回值的length是否为0来判断

     function bools(){
        if(Object.getOwnPropertyNames(msg.d).length ===0)return false;//返回false,为空对象
          return true;//返回true,不为空对象
     }
    console.log(bools({}));

    检测对象是否是空对象(不包含任何可读属性)。

    方法只既检测对象本身的属性,不检测从原型继承的属性。
     1 function isOwnEmpty(obj)
     2 {
     3   for(var name in obj)
     4   {
     5     if(obj.hasOwnProperty(name))
     6     {
     7       return false;//返回false,不为空对象
     8     }
     9   }
    10   return true;//返回true,为空对象
    11 };

     {} 与 null 的区别:

    1 var a = {};
    2 var b = null;
    3  
    4 a.name = 'realwall';
    5 b.name = 'jim'; //这里会报错,b为空指针对象,不能像普通对象一样直接添加属性。
    6 b = a;
    7 b.name = 'jim'; //此时 a 和 b 指向同一个对象。a.name, b.name 均为'jam'
  • 相关阅读:
    百度编辑器图片在线流量返回url改动
    谋哥:悟马道长第一句话之“不要赚屌丝的钱”
    HDOJ 题目3518 Boring counting(后缀数组,求不重叠反复次数最少为2的子串种类数)
    mysqlbinlog高速遍历搜索记录
    推断整数、推断邮箱、推断手机号码、推断邮政编码、推断中文
    用筛选法求100以内的素数(数组)
    【DataStructure】One of queue usage: Simulation System
    Registry Connect failed,Windows服务诊断
    Struts2 的工作原理
    vue上传图片到服务器
  • 原文地址:https://www.cnblogs.com/exhuasted/p/6098437.html
Copyright © 2011-2022 走看看