Ama*_*ere 109

它们巧妙地不一样.

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

'1' != 1   // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).
Run Code Online (Sandbox Code Playgroud)

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


mar*_*inr 14

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

!==不一样

!=不相等

AND"相同意味着相同和相同的类型."

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

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

-

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


For*_*ega 9

不,它不一样.例如,请参见此处.

4 !== '4' returns true   (and 4 === '4' returns false)
4 != '4'  returns false  (and 4 == '4'  returns true)
Run Code Online (Sandbox Code Playgroud)

  • 而对于完全瘦的人来说,没有什么比这规范更合适的了。您可以从此处下载最新版本:http://www.ecma-international.org/publications/files/drafts/这是以“ tc39-”开头的PDF文件(撰写本文时,tc39-2009-050.pdf) 。那是草案,但是在本月初被投票通过。 (2认同)
  • 并参阅http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use/1813267#1813267如何阅读规格! (2认同)

Sea*_*lin 6

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

'1' != 1
Run Code Online (Sandbox Code Playgroud)

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