【发布时间】:2017-06-06 15:50:54
【问题描述】:
如果我的某个对象具有可能存在也可能不存在的属性,是否有首选方法来检查其是否存在?
// Good?
(someObj.property !== undefined && someObj.property !== null)
// Better?
(typeof someObj.property !== 'undefined')
// Best?
(someObj.property != null)
*最后一个!=运算符是on purpose:
必须使用严格相等检查 (
===) 来支持抽象相等检查 (==)。唯一的例外是通过null检查undefined和null。在逻辑上可能只遇到null或undefined之一的情况下(例如未初始化的变量),也可以使用== null。
【问题讨论】:
-
第一个和最后一个是等价的。中间的不会检查
null值。所以首先这取决于你想要什么。然后就看你想输入多少了;)是否使用!= null是个人喜好。 -
if(someObj.property) 除了布尔值之外的所有内容?
-
@Jonasw:还有空字符串,
0,NaN。 -
什么是现有属性?是否存在虚假值?
标签: javascript object logic