使用==而不是===对于null/undefined可以吗?
使用==而不是===对于null/undefined可以吗?
这个问题在这里已经有答案了:
我目前有一个变量,它可以是null
,也可以是undefined
。在这两种情况下,我想要离开函数:
if (myvar==null) return;
这样做没问题,但是我会从我的IDE(VS)中获得警告,因为==
不关心类型,而===
关心。我知道==
通常被认为是不好的风格,因为这一点。
这是例外情况吗?我应该简单地忽略这个警告,坚持更好的可读性,还是应该采取以下推荐行动?
if (myvar===null || myvar===undefined) return;
admin 更改状态以发布 2023年5月24日
问题在于缺少澄清。\n如果你为自己编写代码,那没问题,因为你确切地知道自己在做什么。但如果某个贡献者发现了这段代码,他们可能会:
\n
- \n
- 不知道在
null
/undefined
的情况下==
是如何工作的 - 知道它是如何工作的,但不知道使用是否有意义(如果你要检查
null
或undefined
,或者只是想检查null
但使用了==
)
\n
\n
\n代码应该清晰明了,所以通常你会发现编程人员在此检查之前添加注释,以指明是的,他们知道自己在做什么,也是故意的。\n最终,你会烦透这些,并开始使用myvar === null || myvar === undefined
。\n这更冗长,但更清晰,不会引起误解。\n我注意到另一件事是为此类事情创建自定义函数,例如isNil(myvar)
,但尽管它更冗长,我仍然更喜欢检查两个值。