在JavaScript中!=与!相同= [重复]

问题描述 投票:54回答:6

可能重复: Javascript === vs == : Does it matter which “equal” operator I use? Javascript operator !==

看看this commit

!=和JavaScript中的!==一样吗?

javascript syntax
6个回答
107
投票

它们巧妙地不一样。

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

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

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


13
投票

http://en.wikipedia.org/wiki/JavaScript_syntax#Operators

!==不一样

!=不相等

AND“相同意味着相同和相同的类型。”

http://docstore.mik.ua/orelly/webprog/jscript/ch05_04.htm

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

--

总结一下它们是一样的吗?不,因为有一个额外的测试!==(over!=)类型相同以及相等。


9
投票

不,它不一样。例如,参见here

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

6
投票

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

'1' != 1

评估为假。对于== v。===也是如此。通常,避免==和!=,除非您特别希望执行强制。使用===和!==并检查您正在寻找的结果。


0
投票

不仅要检查价值,还要检查比较的东西的类型。这在php和其他一些语言中也是一样的。


0
投票

看看JSLint是否有区别的解释。我还建议你通过JSLint至少传递一次JavaScript代码,你可能会学到有价值的东西......

© www.soinside.com 2019 - 2024. All rights reserved.