Javascript检查变量

时间:2012-06-22 09:32:15

标签: javascript json validation object null

  

可能重复:
  How do I test for an empty Javascript object from JSON?

var test= {};

var incidentReport = {
      "place1": "n/a",
      "place2": "n/a",
      "place3": "n/a",
 }

以上是我的变种将要看的两种方式。我尝试过以下代码来测试它是否为空/看起来像{}

if(test == "")

并尝试了

if(test == null)

也尝试了

if(!test)

有谁知道我哪里出错了?只是JavaScript和JSON的初学者。我正在考虑回到练习是否有更好的方法来宣布这个空?

感谢您的支持

3 个答案:

答案 0 :(得分:2)

使用JSON.stringify

var test= {};
if(JSON.stringify(test).length==2)
alert('null')

答案 1 :(得分:1)

if(test == "")

检查它是否为空字符串,因此不起作用

if(test == null)

检查null是否与undefined“相似” - 事实并非如此

if(!test)

检查它是否为假值,但情况并非如此。

您必须检查是否存在子元素(属性):

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

if ( isEmpty(test) ){...}

非常重要的一点是.hasOwnProperty() - 这会检查它是否是对象的真实属性,而不仅仅是通过原型链继承。

答案 2 :(得分:0)

这里测试是一个对象。所以你必须检查他的对象中是否有任何prioperties / elements。您可以尝试下面的内容

var test= {};

function isEmptyObject(obj) {
   // This works for arrays too.
   for(var name in obj) {
       return false
   }
   return true
}

alert("is this object empty?" + isEmptyObject(test));​