|2.9.1.Equal and Not Equal|
<title>A Simple Page</title>
var x = 0;
while (x < 10)
if (x % 2 != 0)
The not equal operator is the exclamation point followed by an equal sign (!=), and it returns true if operands are not equal.
Both operators do conversions in order to determine if two operands are equal.
When performing conversions, follow these basic rules:
- If an operand is a Boolean value, convert it into a numeric value before checking for equality. A value of false converts to 0; whereas a value of true converts to 1.
- If one operand is a string and the other is a number, attempt to convert the string into a number before checking for equality.
- If one operand is an object and the other is a string, attempt to convert the object to a string (using the toString() method) before checking for equality.
- If one operand is an object and the other is a number, attempt to convert the object to a number before checking for equality.
- Values of null and undefined are equal.
- Values of null and undefined cannot be converted into any other values for equality checking.
- If either operand is NaN, the equal operator returns false and the not equal operator returns true.
- If both operands are NaN, the equal operator returns false because, by rule, NaN is not equal to NaN.
- If both operands are objects, then the reference values are compared.
- If both operands point to the same object, then the equal operator returns true. Otherwise, the two are not equal.
The following table lists some special cases and their results:
|null == undefined||true|
|"NaN" == NaN||false|
|5 == NaN||false|
|NaN == NaN||false|
|NaN != NaN||true|
|false == 0||true|
|true == 1||true|
|true == 2||false|
|undefined == 0||false|
|null == 0||false|
|"5" == 5||true|