可能重复: Javascript === vs == : Does it matter which “equal” operator I use? Javascript operator !==
!=
和JavaScript中的!==
一样吗?
它们巧妙地不一样。
!=
检查价值
!==
检查值和类型
'1' != 1 // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).
在前面的例子中。表达式的前半部分是字符串,后半部分是整数。
从
http://en.wikipedia.org/wiki/JavaScript_syntax#Operators
!==不一样
!=不相等
AND“相同意味着相同和相同的类型。”
从
http://docstore.mik.ua/orelly/webprog/jscript/ch05_04.htm
“在JavaScript中,数字,字符串和布尔值按值进行比较。另一方面,对象,数组和函数通过引用进行比较。”
--
总结一下它们是一样的吗?不,因为有一个额外的测试!==(over!=)类型相同以及相等。
不,它不一样。例如,参见here。
4 !== '4' returns true (and 4 === '4' returns false)
4 != '4' returns false (and 4 == '4' returns true)
最大的区别是!=执行类型强制。也就是说,在检查相等性之前,有效地将一个值强制转换为另一个值。这就是为什么,如Amadiere的回答:
'1' != 1
评估为假。对于== v。===也是如此。通常,避免==和!=,除非您特别希望执行强制。使用===和!==并检查您正在寻找的结果。
不仅要检查价值,还要检查比较的东西的类型。这在php和其他一些语言中也是一样的。
看看JSLint是否有区别的解释。我还建议你通过JSLint至少传递一次JavaScript代码,你可能会学到有价值的东西......