In JavaScript, is '!=' the same as '!=='?

76556 次浏览

不,这是不一样的。看例子 给你

4 !== '4' returns true   (and 4 === '4' returns false)
4 != '4'  returns false  (and 4 == '4'  returns true)

它们微妙地不同。

!=检查值
!==检查值和类型

'1' != 1   // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).

在前面的例子中,表达式的前半部分是一个字符串,后半部分是一个整数。

它不仅检查价值,而且类型的东西比较。

这在 PHP和其他一些语言中也是一样的。

来自 JavaScript 语法,Operators,

不一样

不平等

“相同的意思是相等和相同的类型。”

来自 Rel = “ nofollow norefrer”> 5.4等式运算符 :

”在 JavaScript 中,数字、字符串和布尔值通过值进行比较。 ... 另一方面,对象、数组和函数通过引用进行比较。”

--

所以总的来说,它们是一样的吗?不,因为有一个附加的测试!= = 结束!=)对于 一致性类型和 平等类型。

最大的区别就是!= 执行类型强制。也就是说,在检查相等性之前,将一个值有效地强制转换为另一个值。这就是为什么,就像 Amadiere 的回答那样:

'1' != 1

评估为 false。同样的道理也适用于 = = v = = 。一般来说,避免 = = 和!= 除非你特别想要强制执行。使用 = = = 和!= = 并检查正是你所寻找的结果。