严格的平等是否保证了平等

我开始用Mocha为我的nodeJS / Javascript应用程序编写unit testing。

对于我的平等主张testing,我决定使用

  • assert.strictEqualtesting相等
  • assert.notEqualtesting差异

这背后的想法是强制使用严格的相等运算符( ===!== ),但要确保如果使用==!=则不会产生错误。

但是这引起了我一个问题:

对于每一个可能的aa === b意味着a == b并且做a !== b意味着a != b

===和!==确保不仅项目被认为是“相等的”,而且它们是相同的types – 没有强制types:

 "1" == 1 //true "1" === 1 //false 

不平等运算符也是一样的:

 "2" != 1 //true "2" !== 1 //true "1" != 1 //false "1" !== 1 //true 

所以,简短的回答是:“对于每一个可能的情况,a == b表示a === b,而a!= b表示a == b? – 没有

不。例如0 !== false然后0 == false

=======强。 ==比较只是检查两个值是否相等,根据需要执行types转换。 A ===比较检查,types和值是相同的。 所以a === b意味着a == b ,而a != b意味着a !== b

例:

 "100" == 100 -> true "100" === 100 -> false "100" != 100 -> false "100" !== 100 -> true