检查对象属性的首选方法是`null`或`undefined`
如果我有一些对象具有财产是可能会或可能不会存在,有没有检查其生存的首选方法是什么?检查对象属性的首选方法是`null`或`undefined`
// Good?
(someObj.property !== undefined && someObj.property !== null)
// Better?
(typeof someObj.property !== 'undefined')
// Best?
(someObj.property != null)
*最后!=
运营商on purpose:
全等检查(
===
)必须有利于抽象的平等检查(==
)的使用。唯一的例外是通过null
检查undefined
和null
。在逻辑上遇到null
或undefined
之一的情况下,如未初始化的变量,也可以使用== null
。
我想你会使用obj.hasOwnProperty(丙)
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
取决于是否应该考虑“null”值。 –
请提供您的链接的更多细节。查看[回答]了解更多详情。 –
这不是要检查财产的价值,而不是财产本身是否存在? –
第一个和最后一个是等价的。中间的不会检查'null'值。首先它取决于你想要的东西。那么它取决于你想输入多少;)是否使用'!= null'是个人偏好。 –
if(someObj.property)除了布尔值之外的所有东西吗? –
@Jonasw:空串,'0','NaN'。 –