JavaScript Comparison Operators
Compare values and make decisions in your code
⚖️ What are Comparison Operators?
Comparison operators are used to compare two values and return a boolean result (true or false). They're essential for making decisions in your programs!
// Basic comparisons
let age = 18;
let isAdult = age >= 18; // true
let isChild = age < 13; // false
let canVote = age === 18; // true
Output:
isAdult = true
isChild = false
canVote = true
Types of Comparison Operators
Equal To
Checks if values are equal
5 == "5" // true
Strict Equal
Checks value and type equality
5 === "5" // false
Not Equal
Checks if values are not equal
5 != 3 // true
Strict Not Equal
Checks value and type inequality
5 !== "5" // true
🔹 Equality Operators (== vs ===)
Understanding the difference between loose and strict equality:
// Loose equality (==) - converts types
console.log(5 == "5"); // true (string "5" converted to number)
console.log(true == 1); // true (true converted to 1)
console.log(false == 0); // true (false converted to 0)
console.log(null == undefined); // true (special case)
// Strict equality (===) - no type conversion
console.log(5 === "5"); // false (different types)
console.log(true === 1); // false (different types)
console.log(false === 0); // false (different types)
console.log(null === undefined); // false (different types)
// Best practice: Use === for safer comparisons
let userAge = "25";
if (userAge === 25) {
console.log("This won't run - different types");
}
if (userAge === "25") {
console.log("This will run - same type and value");
}
Console Output:
true
true
true
true
false
false
false
false
This will run - same type and value
🔹 Relational Operators
Compare the relative values of numbers and strings:
// Greater than (>)
console.log(10 > 5); // true
console.log(3 > 8); // false
// Less than (<)
console.log(4 < 7); // true
console.log(9 < 2); // false
// Greater than or equal (>=)
console.log(15 >= 15); // true
console.log(12 >= 20); // false
// Less than or equal (<=)
console.log(8 <= 10); // true
console.log(25 <= 15); // false
// String comparison (alphabetical order)
console.log("apple" < "banana"); // true
console.log("zebra" > "ant"); // true
console.log("Cat" < "cat"); // true (uppercase comes first)
Console Output:
true
false
true
false
true
false
true
false
true
true
true
🔹 Practical Examples with If Statements
Using comparison operators to make decisions:
// Age verification system
let userAge = 17;
if (userAge >= 18) {
console.log("You can vote!");
} else if (userAge >= 16) {
console.log("You can drive!");
} else if (userAge >= 13) {
console.log("You're a teenager!");
} else {
console.log("You're a child!");
}
// Password strength checker
let password = "mypassword123";
if (password.length >= 12) {
console.log("Strong password");
} else if (password.length >= 8) {
console.log("Medium password");
} else {
console.log("Weak password");
}
// Grade calculator
let score = 85;
let grade;
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else if (score >= 60) {
grade = "D";
} else {
grade = "F";
}
console.log("Your grade is: " + grade);
Console Output:
You can drive!
Medium password
Your grade is: B
🔹 Common Pitfalls and Tips
Avoid these common mistakes when using comparison operators:
// Pitfall 1: Assignment vs Comparison
let x = 5;
// Wrong: if (x = 10) - This assigns 10 to x!
// Correct: if (x == 10) - This compares x with 10
if (x === 5) {
console.log("x is 5");
}
// Pitfall 2: Comparing different types
let userInput = "20"; // String from form input
let minimumAge = 18; // Number
// Wrong way (might work but unpredictable)
if (userInput > minimumAge) {
console.log("Old enough");
}
// Better way (convert to same type first)
if (Number(userInput) > minimumAge) {
console.log("Old enough - converted to number");
}
// Pitfall 3: Floating point precision
let price1 = 0.1 + 0.2; // 0.30000000000000004
let price2 = 0.3;
console.log(price1 === price2); // false!
console.log(Math.abs(price1 - price2) < 0.001); // true (better way)
Console Output:
x is 5
Old enough - converted to number
false
true