关于语法:在javascript中 != 与 !== 一样吗

In JavaScript is != same as !==

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
Javascript === vs == : Does it matter which “equal” operator I use?
Javascript operator !==

看看这个承诺

在javascript中,!=!==是否相同?


它们微妙地不一样。

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

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

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


http://en.wikipedia.org/wiki/javascript_语法运算符

!==不相同

!=不相等

和"相同"的意思是相同的和相同类型的。

http://docstore.mik.ua/orelly/webprog/jscript/ch05_04.htm(英文)

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

——

总之,它们是相同的吗?不,因为有附加测试!=(结束)!=)对于类型相同和相等。


不,不一样。请参见此处的示例。

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


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

1
'1' != 1

计算结果为false。同样适用于==V.===。一般来说,避免==和!=除非您特别希望执行强制。使用= =和!==并检查您要查找的结果。


查看jslint以了解差异的解释。我还建议您至少通过JSlint传递一次JavaScript代码,您可能会学到有价值的东西…


不仅要检查值,还要检查比较对象的类型。这在PHP和其他一些语言中也是一样的。