是否使用 == 而不是 === 确定 null/未定义?

我目前有一个变量可以nullundefined. 在这两种情况下,我都想离开该功能:

if (myvar==null) return;

这工作正常,但我从我的 IDE (VS) 中检索警告,因为==它不关心类型===。我知道这==通常被视为糟糕的风格。

这是规则的例外吗?我应该简单地忽略此警告并坚持更好的可读性还是建议采取以下措施?

if (myvar===null || myvar===undefined) return;


慕妹3242003
浏览 160回答 2
2回答

江户川乱折腾

问题是缺乏澄清。如果您是为自己编写代码,那很好,因为您确切地知道自己在做什么。但是,如果贡献者找到此代码,他们可以:不知道==在null/的情况下如何工作undefined知道它是如何工作的,但不知道使用是否是故意的(如果你真的想同时检查nullor undefined,或者你只想检查null但 used ==)代码应该是清晰的,因此您经常会发现程序员在此检查之前添加注释以指定是的,他们知道自己在做什么,是的,这是故意的。最终你厌倦了它并开始使用myvar === null || myvar === undefined.它更冗长,但更清晰,并且不会产生误解。我注意到的另一件事是为此类事物创建自定义功能,例如isNil(myvar),尽管冗长,但我更喜欢检查这两个值。

白衣染霜花

==有非常具体的规则,通常不推荐,因为这些规则不直观。如果您已经记住了与其行为相关的规则,我只会宽恕使用它,就像所有其他可能不得不处理您的代码的开发人员一样(大多数人没有)。在这种情况下,a == null返回trueifa是null, undefined, or 之一document.all,但不返回其他 4 个错误的 JS 值(MDN,包括为什么 document.all 是错误的)。因此,除非您希望它匹配document.all,否则我会使用===.此外,===在所有地方使用会增加代码的一致性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript