Comparison Operators
Equality
Javascript provides two types of equality comparison operators:
"Loose" Equality Operator (==)
The comparison is true if the operands are equal after type conversion:
1 == 1 // true
1 == '1' // true
1 == true // true
0 == false // true
Using the "loose" equality operator can lead to unexpected results:
null == undefined // true
0 == '' // true
0 == [] // true
1 == ["1"] // true
1 == "hello" // true
1 == true // true
true == "hello" // false
Strict Equality Operator (===)
The comparison is true if the operands are strictly equal with no type conversion:
1 === 1 // true
1 === '1' // false
null === undefined // false
It is generally recommended to use strict equality comparisons whenever possible, as they are more reliable and avoid unexpected type coercion. However, there may be situations where loose equality comparisons are necessary or more convenient.
Not Equal Operators
In a similar fashion we have loose & strict non-equal operators:
1 != "1" // false
1 !== "1" // true
1 != "true" // false
1 !== "true" // true
Other Comparison Operators
Other comparison operators are: less than (<
), less than or equal to (<=
), greater than (>
) and greater than or equal to (>=
):
const x = 1
x < 1 // false
x <= 1 // true
x > 1 // false
x >= 1 // true
For other operators, see the JavaScript overview page.