检查JSON对象中是否存在属性与检查属性是否为空是否更加困难?
你能同时做两件事吗?
答案 0 :(得分:3)
您可以使用hasOwnProperty(prop)
来确定该属性是否存在。
var a = { p: null };
a.p == null; // true
a.hasOwnProperty('p'); // true
答案 1 :(得分:1)
检查属性是否存在的语法是:
if ('prop' in obj)
或
if (obj.hasOwnProperty('prop'))
检查属性是否为null的语法是:
if (obj.prop === null)
一般情况下,您无法在一次操作中执行这两项操作。如果该属性不存在,则obj.prop
将为undefined
,因此=== null
将为false。
但是,在许多情况下,您事先知道属性将包含哪种值。如果你知道如果它存在它将永远是一个真正的价值,你可以简单地写:
if (obj.prop)
发生这种情况的常见情况是属性始终包含对象。我们可以在以下习语中利用这一点:
if (obj && obj.prop && obj.prop.subprop && obj.prop.subprop.number == 3)