# Equal and Not Equal : Relational Operators « Operators « JavaScript Tutorial

```<html>
<title>A Simple Page</title>
<script language="JavaScript">
<!--
var x = 0;
while (x < 10)
{
x++;
if (x % 2 != 0)
{
continue;
}
document.write(x);
}
//  -->
</script>
<body>

</body>
</html>
```

The equal operator in JavaScript is the double equal sign (==), and it returns true if both operands are equal.

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:

1. 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.
2. If one operand is a string and the other is a number, attempt to convert the string into a number before checking for equality.
3. 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.
4. If one operand is an object and the other is a number, attempt to convert the object to a number before checking for equality.
5. Values of null and undefined are equal.
6. Values of null and undefined cannot be converted into any other values for equality checking.
7. If either operand is NaN, the equal operator returns false and the not equal operator returns true.
8. If both operands are NaN, the equal operator returns false because, by rule, NaN is not equal to NaN.
9. If both operands are objects, then the reference values are compared.
10. 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:

 Expression Value 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

 2.9.Relational Operators 2.9.1. Equal and Not Equal 2.9.2. Equal Operator 2.9.3. A Comparison Operator returns boolean variable 2.9.4. != (Not Equal) 2.9.5. Identically Equal and Not Identically Equal 2.9.6. not identically equal operator 2.9.7. !== (Non-Identity) 2.9.8. < (Less Than) 2.9.9. ===(Identity) 2.9.10. > (Greater Than) 2.9.11. >= (Greater Than or Equal)