相等运算符(==)与严格相等运算符(===)

相等运算符(==)与严格相等运算符(===

原文: https://howtodoinjava.com/typescript/equals-vs-strict-equals/

在 TypeScript(和 JavaScript)中,您可以与相等运算符'==')或严格相等运算符'===')比较。 两者似乎几乎相似; 但是他们比较两个值的方式却大不相同。

相等运算符(==

使用相等运算符比较 x == y(其中xy是值)会产生truefalse。 要知道的重要一点是,在比较两个值时,JavaScript 运行时将执行类型转换以使两个值都具有相同的类型。

例如,如果尝试将string值与number值进行比较,则string值将首先转换为number类型,然后进行比较。

"10" == 10		

//becomes

ToNumber("10") === 10

阅读更多:完全相等比较算法

让我们看一个例子。

let a = 10;

a == 10					//true
a == '10'				//true

查看上面示例中的最后两个语句。 变量'a'如何等于number 10string '10'

严格相等运算符(===

使用相等运算符比较 x === y,其中xy是值,仅在以下情况下才产生truefalse

  1. xy的类型相同
  2. xy的值相等

让我们看一个例子。

let a = 10;

a === 10					//true
a === '10'					//false

在这种情况下,比较存储number 10的变量不等于string 10

使用哪个运算符?

作为建议,建议始终使用严格相等运算符。 这很有帮助,因为

  1. 您无需在检查相等性时记住类型转换规则。
  2. 如预期的那样,比较不同的数据类型应为false
  3. 由于上述事实,源代码不太容易出错。

将我的问题放在评论部分。

学习愉快!