我开始使用 Mocha 为我的 nodeJS/Javascript 应用程序编写单元测试。
对于我的相等断言测试,我决定使用
assert.strictEqual
测试相等性assert.notEqual
测试差异
这背后的想法是强制使用严格相等运算符(===
和 !==
),但要确保在以下情况下不会产生错误:使用 ==
和 !=
。
但这让我想到一个问题:
对于每一个可能的a
,a === b
都意味着a == b
并且a !== b
表示 a != b
?
最佳答案
=== 和 !== 确保不仅项目被视为“相等”,而且它们是相同的类型 - 不会进行类型强制:
"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 吗?” - 没有。
关于javascript - 严格平等是否能保证松散平等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33544624/