我知道我无法做if (!obj.x)
,因为如果obj.x
是0
或""
,它将是“真实的”。
选项1:我可以做if (obj.x === null || obj.x === undefined)
。
选项2:但是我可以做if (obj.x == null)
吗?
请注意,当obj.x
为null
或undefined
时,我希望条件为true,但对于其他任何值,则为false。
根据注释,两个选项是等效的,但选项2更清晰。我同意。
编辑:
有人指出存在类似的问题(请参见上面的链接),但是在这种情况下,我在考虑字段而不是变量。区别在于字段可以为undefined
,使用它们时没有运行时错误。我相应地更新了我的问题。
编辑2:
该问题已经关闭,因为存在类似的问题。我认为这里有一点区别,因为在我的问题中,我要检查的是对象的字段/属性,而不是变量,因此不需要typeof
运算符。