假设我有以下代码:
var person = { "name": "John Doe", "email": "john.doe@example.com" };
这个对象只有两个元素,称为name
和email
。一些人还有一个元素age
,但这个特定的人没有。最好的方法是什么?
if (person.age) { ... }
if (person.age != undefined) { ... }
if (person.age !== undefined) { ... }
if (typeof(person.age) != 'undefined') { ... }
if (person.hasOwnProperty('age')) { ... }
我知道所有这些都不一样,例如if (person.age)
也会失败,如果age
存在但它是false
或null
或''
或0
。我想知道是否有些是完全错误的。
请注意,这里已知person
是一个现有的对象,但person.age
可能存在也可能不存在。
person.hasOwnProperty('age')
:) 属性的 值 是另一回事! - Dhaval Marthakif (typeof person.age == "number")
是你要找的。 - BergihasOwnProperty
或in
(取决于您是否关心它是自有属性)。如果您还关心属性的类型,请使用typeof
。 - Bergi