2016-11-11 54 views
1

我有一个变量var a = {};Javascript如果条件检查一个变量与空物体或不

if (a !==null) { 
// Entering here if var a has empty object but i don't want to enter. 
} 

if (a == null) { 
// Want to enter into this condition if var a has empty object. 
} 

我尝试了几种方法来编写这种条件,就像给出一个== {}但它仍然进入第一个条件。你能否让我知道检查这种情况的适当方法?

+0

谢谢大家对您的有效回应。 @Janaka dissanayake回应得心应手。 – suman

回答

2

首先选择

var a = null; 

第二个选项

if (a !==null && JSON.stringify(a) !== '{}') {..} 
2

function isEmptyObject(obj) { 
 
    return Object.keys(obj).length == 0; 
 
} 
 

 
var a = {}; 
 

 
if (isEmptyObject(a)) { 
 
    console.log('emptyOject') 
 
}

+0

如果a为空或未定义,该怎么办?应该在功能上测试它。 – Will

+0

@will不是在一个名为'isEmptyObject'的函数中,如果你把它改为'isNullOrEmptyObject()',那么也许吧,但是OP的例子是关于一个空对象的。 '我有一个变量var a = {};'无论如何,这是微不足道的......我确信OP可以弄清楚。 –

1

jQuery不会

function isEmptyObject(obj) { 
    var name; 
    for (name in obj) { 
     return false; 
    } 
    return true; 
} 
+0

这也将检查继承属性。只要OP了解和选择他们想要的。 –

0

在ECMA脚本5

var objInTest = {}; 

function isEmpty(obj) { 
    return Object.keys(obj).length === 0; 
} 

预ECMA脚本5

function isEmpty(obj) { 
    for(var prop in obj) { 
     if(obj.hasOwnProperty(prop)) 
      return false; 
    } 
    return true; 
}