我开始使用Mocha为我的nodeJS / Javascript应用程序编写单元测试。
对于我的平等断言测试,我决定使用
assert.strictEqual
来测试平等assert.notEqual
测试差异这背后的想法是强制使用严格相等运算符(===
和!==
),但要确保==
和{{1}时不会产生错误使用。
但它引出了一个问题:
对于每个可能的!=
,a
表示a === b
,a == b
表示a !== b
吗?
答案 0 :(得分:3)
===和!==确保这些项目不仅被视为“相等”,而且它们的类型相同 - 没有类型强制执行:
"1" == 1 //true
"1" === 1 //false
不等式运算符也是如此:
"2" != 1 //true
"2" !== 1 //true
"1" != 1 //false
"1" !== 1 //true
所以,简短的回答,“对于每一个可能的a = = b表示a === b并且确实是!= b表示a!== b?” - 不。
答案 1 :(得分:1)
没有。例如0 !== false
0 == false
。
答案 2 :(得分:1)
===
比较强于==
。 ==
比较仅检查两个值是否相等,根据需要执行类型转换。 ===
比较检查类型和值是否相同。因此a === b
暗示a == b
,a != b
暗示a !== b
。
示例:
"100" == 100 -> true
"100" === 100 -> false
"100" != 100 -> false
"100" !== 100 -> true