Javascript检查变量

Javascript Checking Variable

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I test for an empty Javascript object from JSON?

1
2
3
4
5
6
7
var test= {};

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

上面是我的变量将要看到的两种方式。我尝试执行以下代码来测试它是否为空/看起来像

1
if(test =="")

并尝试

1
if(test == null)

也试过

1
if(!test)

有人知道我哪里出错了吗?只不过是一个初级的javascript和JSON。我所做的是不是考虑了回去练习有没有更好的方法来宣布这是空的?

谢谢你的支持


使用json.stringify

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


1
if(test =="")

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

1
if(test == null)

检查是否是与undefined类似的null——不是这样的。

1
if(!test)

检查它是否是一个错误的值,在这种情况下也不是。

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

1
2
3
4
5
6
7
8
function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop)) return false;
    }
    return true;
}

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

非常重要的一点是.hasOwnProperty()—这检查它是否是对象的不动产,而不仅仅是通过原型链继承的。


这里的测试是一个对象。因此,您必须检查对象中是否有任何priproperties/elements。你可以试试下面的东西

1
2
3
4
5
6
7
8
9
10
11
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));?