检查属性是否存在与检查它是否为空

时间:2016-11-16 22:32:56

标签: javascript

检查JSON对象中是否存在属性与检查属性是否为空是否更加困难?

你能同时做两件事吗?

2 个答案:

答案 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)