相等运算符(==
)与严格相等运算符(===
)
原文: 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
。 - 由于上述事实,源代码不太容易出错。
将我的问题放在评论部分。
学习愉快!