No, it is not the same. See for example here.
4 !== '4' returns true (and 4 === '4' returns false)
4 != '4' returns false (and 4 == '4' returns true)
No, it is not the same. See for example here.
4 !== '4' returns true (and 4 === '4' returns false)
4 != '4' returns false (and 4 == '4' returns true)
They are subtly not the same.
!=
checks the value
!==
checks the value and type
'1' != 1 // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).
In the previous example. The first half of the expression is a string, the second half is an integer.
Checks not only value but also the type of the things compared. This is also same in php and some other languages too.
From
http://en.wikipedia.org/wiki/JavaScript%5Fsyntax#Operators
!== Not identical
!= Not equal
AND "Identical means equal and of same type."
From
http://docstore.mik.ua/orelly/webprog/jscript/ch05%5F04.htm
"In JavaScript, numbers, strings, and boolean values are compared by value. ... On the other hand, objects, arrays, and functions are compared by reference. "
--
So in summary are they the same? No, because there is an additional test with !== (over !=) for type sameness as well as equalness.
The big difference is that != performs type coercion. That is, one value is effectively cast to the other before equality is checked. This is why, as in Amadiere's answer:
'1' != 1
evaluates to false. The same holds true for == v. ===. In general, avoid == and != unless you specifically want coercion to be performed. Use === and !== and check for exactly the result you're looking for.