美文网首页
js判断对象是否为空对象的几种方法

js判断对象是否为空对象的几种方法

作者: 阿羡吖 | 来源:发表于2020-05-06 10:59 被阅读0次
    1、将JSON对象转化为json字符串,再判断该字符串是否为"{}"
    var data = {}
    var b =(JSON.stringify(data) == "{}");
    alert(b); // true
    
    2、for in 循环
    var obj ={}
    var  b = function(){
      for (var key in obj){
        return false
      }
      return  true
    }
    alert(b());// true
    
    3、jquery的isEmptyObject方法

    此方法是jquery将2方法(for in)进行封装,使用时需要依赖jquery

    var data = {}
    var b =$.isEmptyObject(data);
    alert(b); //true
    
    4、Object.getOwnPropertyNames()方法

    此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空。
    此方法不兼容IE8,其余未测试

    var data  = {}
    var arr =Object.getOwnPropertyNames(data);
    alert(arr.length === 0) //true
    
    5、使用ES6的Object.keys()方法

    与4方法类似,是ES6的新方法,返回值也是对象中属性名组成的数组

    var data = {}
    var arr = Object.keys(data);
    alert(arr.length ==0) //true
    

    有大佬说,for in循环只适合原型链为空对象的情况;使用Object.keys和Object.getOwnPropertyNames对symbol的key无效,建议使用Reflect.keys方法,有兴趣的同学可以动手测试。

    相关文章

      网友评论

          本文标题:js判断对象是否为空对象的几种方法

          本文链接:https://www.haomeiwen.com/subject/dnyightx.html