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

Home
JavaScript Tutorial
 1 Language Basics 2 Operators 3 Statement 4 Development 5 Number Data Type 6 String 7 Function 8 Global 9 Math 10 Form 11 Array 12 Date 13 Dialogs 14 Document 15 Event 16 Location 17 Navigator 18 Screen 19 Window 20 History 21 HTML Tags 22 Style 23 DOM Node 24 Drag Drop 25 Object Oriented 26 Regular Expressions 27 XML 28 GUI Components 29 Dojo toolkit 30 jQuery 31 Animation 32 MS JScript
 JavaScript Tutorial » Operators » Relational Operators
2.9.1.Equal and Not Equal
 ``` A Simple Page ```

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)