判断一个对象是否为空对象,本文给出三种判断方法:

1.最常见的思路, for...in... 遍历属性,为真则为“非空数组”;否则为“空数组”

for (var i in obj) { // 如果不为空,则会执行到这一步,返回true
    return true
return false // 如果为空,返回false

2.通过 JSON 自带的 stringify() 方法来判断:

JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。

if (JSON.stringify(data) === '{}') {
    return false // 如果为空,返回false
return true // 如果不为空,则会执行到这一步,返回true

这里需要注意为什么不用 toString() ,因为它返回的不是我们需要的。

var a = {}
a.toString() // "[object Object]"

3. ES6 新增的方法 Object.keys() :

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

如果我们的对象为空,他会返回一个空数组,如下:

var a = {}
Object.keys(a) // []

我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。

if (Object.keys(object).length === 0) {
    return false // 如果为空,返回false
return true // 如果不为空,则会执行到这一步,返回true

作者:言墨儿
链接: http://www.jianshu.com/p/972d0f277d45

转载补充:

原文中的代码,是写在一个 function 中的。类似这样:

function checkNullObj (obj) {
    if (Object.keys(obj).length === 0) {
        return false // 如果为空,返回false
    return true // 如果不为空,则会执行到这一步,返回true

但这样写,还是太累赘了。可以写成这样:

function checkNullObj (obj) {
    return Object.keys(obj).length === 0
                                    假设您有如下对象,您想判断对象 是否为空:
以下解决方案是最简洁且最高效的方案。一、通过 JSON 自带的 stringify() 方法来判断
二、使用 ES6 的 Object.keys() 方法
三、Object.getOwnPropertyNames() 方法
四、将 json 对象转化为 json 字符串,再判断该字符串是否为 “{}”
五、for in 循环判断...
                                    在写js脚本的时候经常遇到对象为空或者不是对象的情况,出现这种情况我们可以用if去判断它,然后去执行相应的处理方法,具体判断他们的方法有以下几种:
1、if   (typeOf(x)   ==   “undefined”)
2、if   (typeOf(x)   !=   “object”)
3、if(!x)
其中第三种是最简单的方法,但是第三种就不能用if(x)这种互斥的方法去判断,只能在对象前面加!
java里面!x为true的时候x肯定为false了,但是这里是不可以的
                                    发现了一个巧妙的实现: 需要检查一个对象Object是否为空,即不包含任何元素。Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair)。检查一个对象是否为空,等价于检查对象中有没有键值对。写成代码,形如:
if (isEmptyObject(obj)) {
 // obj is empty
} else {
 // not empty
至于 isEmptyObject 的实现,jQuery 中有一个很有想法的方式,请看代码: 
function isEmptyObject(obj) {
 for (var key in obj) 
                                    例如:当我们在电商项目中,做购物车时,购物车内有商品时是一个页面,但是当我们清购物车时,页面显示的是另外一个页面,例如:购物是的页面。此时我们就需要判断商品这个对象是否为空。
var b=new Object();
console.log(JSON.stringify(a)=="{}")  //true
console.log(JSON.stringify(b)=="{}")  //true
二、for…in循环
使用for in循环可...
	可选。用于转换结果的函数或数组。
	如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个字符串:""。
	如果 replacer...
                                    js 判断一个 object 对象是否为空
判断一个对象是否为空对象,本文给出三种判断方法:
1.最常见的思路,for...in...遍历属性,为真则为“非数组”;否则为“数组”
for (var i in obj) { // 如果不为空,则会执行到这一步,返回true
    return true
return false // 如果为空,返回false
                                    当我们在用jquery的each做循环遍历的时候常常会使用到this,而有时候我们不知道this所指的到底是什么,因为要使用jquery的方法 前提此对象必须是jquery对象。另外要判断一个javascript对象是什么类型,可以使用typeof, 但是typeof只能判断js的基础对象(string,boolean,number,object) 判断一个对象是否为jquery对象可以用 obj instanceof jQuery 例如:  代码如下: var obj = $(“div”); if(obj instanceof jQuery){ alert(“这是一个jQuery对象”)
                                    从Map<String,Object>中根据key值取出来的value默认是Object类型
public static boolean isEmpty(Object obj){
   //Object类型判是和null进行对比
   if (obj == null){    
     return true;
   //  instanceof  判断对象所属的类型
   if ((obj instanceof List)){  
   	//判断list是都为空是从 list集
                                    总结一下,Vue中判断对象是否为空有多种方法,其中包括使用Object.keys()方法、JSON.stringify()方法和Object.getOwnPropertyNames()方法等。如果该对象为空对象,则该方法返回一个对象JSON字符串"{}"。Object.keys()方法可以返回一个对象自身所有可枚举属性的键名数组,如果该对象为空对象,那么该方法返回一个数组。Object.getOwnPropertyNames()方法返回一个键名数组,如果该数组的长度为0,说明该对象一个对象