JavaScript Comparison
Comparison Operators
Comparison operators are used tocompare two values.
Comparison operators always returntrue orfalse.
Given thatx = 5, the table below explains the comparison operators:
| Operator | Description | Comparing | Returns | |
|---|---|---|---|---|
| == | equal to | x == 8 | false | Try it » |
| x == 5 | true | Try it » | ||
| x == "5" | true | Try it » | ||
| === | equal value and equal type | x === 5 | true | Try it » |
| x === "5" | false | Try it » | ||
| != | not equal | x != 8 | true | Try it » |
| !== | not equal value or not equal type | x !== 5 | false | Try it » |
| x !== "5" | true | Try it » | ||
| x !== 8 | true | Try it » | ||
| > | greater than | x > 8 | false | Try it » |
| < | less than | x < 8 | true | Try it » |
| >= | greater than or equal to | x >= 8 | false | Try it » |
| <= | less than or equal to | x <= 8 | true | Try it » |
Comparison operators can be used in conditional statements to compare values and take action depending on the result:
You will learn more about the use of conditional statements in theif...else chapter of this tutorial.
JavaScript String Comparison
All the comparison operators above can also be used on strings:
Note that strings are compared alphabetically:
Comparing Different Types
Comparing data of different types may give unexpected results.
When comparing a string with a number, JavaScript will convert the string to a number when doing the comparison. An empty string converts to 0. A non-numeric string converts toNaN which is alwaysfalse.
| Case | Value | Try |
|---|---|---|
| 2 < 12 | true | Try it » |
| 2 < "12" | true | Try it » |
| 2 < "John" | false | Try it » |
| 2 > "John" | false | Try it » |
| 2 == "John" | false | Try it » |
| "2" < "12" | false | Try it » |
| "2" > "12" | true | Try it » |
| "2" == "12" | false | Try it » |
When comparing two strings, "2" will be greater than "12".
Alphabetically 1 is less than 21.
To secure a proper result, variables should be converted to the proper type before comparison:
Example
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}

