"!= null" 和 "!== null" 有什么区别?

18

很抱歉,我相信过去可能已经有人提出了类似的问题,但很难搜索到这样的问题。 "!="和"!=="并不是非常友好的搜索词。 如果有人知道重复的问题,请指向它。

在比较null值时,使用myVar != nullmyVar !== null有什么区别? 我知道 != 表示不相等 !== 表示不相等的值或不同类型,但在与null进行比较时,是否存在它们会返回不同结果的情况? 是否有一个比另一个更好用?


https://dev59.com/EnRB5IYBdhLWcg3wv5xA?rq=1 - 10100111001
我搜索了“javascript严格不等式与不等式”,找到了一些内容,但知道事物的名称可能很难。我不知道人们第一次看到“x = y ? z :w;”时如何搜索“? :”。 - David Ehrmann
请查看此处以获取详细解释:https://github.com/getify/You-Dont-Know-JS/blob/master/types%20%26%20grammar/ch4.md - Yasin Yaqoobi
1个回答

47

关于是否存在一种情况,!=!== 对于涉及 null 的比较会得到不同的答案,具体问题的答案是

undefined != null  // false
undefined == null  // true

undefined === null // false
undefined !== null // true

==!=的规则明确包含一条条款,规定nullundefined是相同的。

就我个人而言,也就是在我的代码中,这个事实是使用!=(或==)来检查null的原因,尤其是在需要将undefined视为相同的情况下(这是一个非常普遍的情况)。


2
另外,Lodash的 isNil 函数检查给定值是否为 'nullish' (即 nullundefined),在幕后执行的实际上是检查给定值 == null - Neurotransmitter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接