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

2020-05-06  本文已影响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方法,有兴趣的同学可以动手测试。

上一篇下一篇

猜你喜欢

热点阅读