原文: https://howtodoinjava.com/typescript/equals-vs-strict-equals/
在 TypeScript(和 JavaScript)中,您可以与相等运算符('==')或严格相等运算符('===')比较。 两者似乎几乎相似; 但是他们比较两个值的方式却大不相同。
使用相等运算符比较 x == y(其中x和y是值)会产生true或false。 要知道的重要一点是,在比较两个值时,JavaScript 运行时将执行类型转换以使两个值都具有相同的类型。
例如,如果尝试将string值与number值进行比较,则string值将首先转换为number类型,然后进行比较。
"10" == 10
//becomes
ToNumber("10") === 10阅读更多:完全相等比较算法
让我们看一个例子。
let a = 10;
a == 10 //true
a == '10' //true查看上面示例中的最后两个语句。 变量'a'如何等于number 10和string '10'。
使用相等运算符比较 x === y,其中x和y是值,仅在以下情况下才产生true或false:
x和y的类型相同x和y的值相等
让我们看一个例子。
let a = 10;
a === 10 //true
a === '10' //false在这种情况下,比较存储number 10的变量不等于string 10。
作为建议,建议始终使用严格相等运算符。 这很有帮助,因为
- 您无需在检查相等性时记住类型转换规则。
- 如预期的那样,比较不同的数据类型应为
false。 - 由于上述事实,源代码不太容易出错。
将我的问题放在评论部分。
学习愉快!