检查属性是否存在与检查是否为空
答
您可以使用hasOwnProperty(prop)
来确定属性是否存在。
var a = { p: null };
a.p == null; // true
a.hasOwnProperty('p'); // true
+0
你也可以提到'in'运算符。 a中的'p' – zerkms
答
,用于检查属性是否存在的语法是:
if ('prop' in obj)
或
if (obj.hasOwnProperty('prop'))
检查属性是否为空的语法是:
if (obj.prop === null)
一般情况下你不能在一个单一操作。如果该物业不存在,obj.prop
将为undefined
,因此=== null
将为false。
但是,在很多情况下,您事先知道房产将包含什么样的价值。如果你知道,如果它存在,它将永远是一个truthy值,你可以简单的写:
if (obj.prop)
一个共同的情况下发生这种情况是当属性总是包含一个对象。我们可以利用这样的成语如下:
if (obj && obj.prop && obj.prop.subprop && obj.prop.subprop.number == 3)
你能具体吗? – randominstanceOfLivingThing
http://stackoverflow.com/questions/6384421/check-whether-a-value-exists-in-json-object –
如果一个属性为null,那么它就是'=== null''。如果它没有在JSON对象上设置,那么它是'=== undefined'。 –