Comparison and Logical operators are used to test for
trueorfalse.
Comparison Operators #
Comparison operators are used in logical statements to determine equality or difference between variables or values.
Given that x = 5, the table below explains the comparison operators:
| Operator | Description | Comparing | Returns | |
|---|---|---|---|---|
| == | equal to | x == 8 | false | |
| x == 5 | true | |||
| x == “5” | true | |||
| === | equal value and equal type | x === 5 | true | |
| x === “5” | false | |||
| != | not equal | x != 8 | true | |
| !== | not equal value or not equal type | x !== 5 | false | |
| x !== “5” | true | |||
| x !== 8 | true | |||
| > | greater than | x > 8 | false | |
| < | less than | x < 8 | true | |
| >= | greater than or equal to | x >= 8 | false | |
| <= | less than or equal to | x <= 8 | true | 
How Can it be Used #
Comparison operators can be used in conditional statements to compare values and take action depending on the result:
if (age < 18) text = "Too young to buy alcohol";				You will learn more about the use of conditional statements in the next chapter of this tutorial.
Logical Operators #
Logical operators are used to determine the logic between variables or values.
Given that x = 6 and y = 3, the table below explains the logical operators:
| Operator | Description | Example | |
|---|---|---|---|
| && | and | (x < 10 && y > 1) is true | |
| || | or | (x == 5 || y == 5) is false | |
| ! | not | !(x == y) is true | 
Conditional (Ternary) Operator #
JavaScript also contains a conditional operator that assigns a value to a variable based on some condition.
Syntax #
variablename = (condition) ? value1:value2 
Example #
var voteable = (age < 18) ? "Too young":"Old enough";				If the variable age is a value below 18, the value of the variable voteable will be “Too young”, otherwise the value of voteable will be “Old enough”.
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 to NaN which is always false.
| Case | Value | |
|---|---|---|
| 2 < 12 | true | |
| 2 < “12” | true | |
| 2 < “John” | false | |
| 2 > “John” | false | |
| 2 == “John” | false | |
| “2” < “12” | false | |
| “2” > “12” | true | |
| “2” == “12” | false | 
When comparing two strings, “2” will be greater than “12”, because (alphabetically) 1 is less than 2.
To secure a proper result, variables should be converted to the proper type before comparison:
age = Number(age);
if (isNaN(age)) {
  voteable = "Input is not a number";
} else {
  voteable = (age < 18) ? "Too young" : "Old enough";
}				