检查对象属性的首选方法是`null`或`undefined`

检查对象属性的首选方法是`null`或`undefined`

问题描述:

如果我有一些对象具有财产可能会或可能不会存在,有没有检查其生存的首选方法是什么?检查对象属性的首选方法是`null`或`undefined`

// Good? 
(someObj.property !== undefined && someObj.property !== null) 

// Better? 
(typeof someObj.property !== 'undefined') 

// Best? 
(someObj.property != null) 

*最后!=运营商on purpose:

全等检查(===)必须有利于抽象的平等检查(==)的使用。唯一的例外是通过null检查undefinednull。在逻辑上遇到nullundefined之一的情况下,如未初始化的变量,也可以使用== null

+0

第一个和最后一个是等价的。中间的不会检查'null'值。首先它取决于你想要的东西。那么它取决于你想输入多少;)是否使用'!= null'是个人偏好。 –

+0

if(someObj.property)除了布尔值之外的所有东西吗? –

+0

@Jonasw:空串,'0','NaN'。 –

+0

取决于是否应该考虑“null”值。 –

+0

请提供您的链接的更多细节。查看[回答]了解更多详情。 –

+0

这不是要检查财产的价值,而不是财产本身是否存在? –