Logical Operators
Introduction
Logical operators let us combine or invert conditions. They are widely used in decision-making e.g. (if statements, loops). Logical expressions evaluate to true or false but can also take advantage of JavaScript’s truthy and falsy values.
JavaScript treats values like (0, "", null, undefined, NaN, false) as falsy and everything else is truthy. This makes logical operators powerful, but also tricky if not understood properly.
Concepts
- AND (
&&)- true if both conditions are true.
- Example: true && false → false.
- OR (
||)- true if at least one condition is true.
- Example: true || false → true.
- NOT (
!)- Inverts the condition.
- Example: !true → false.
- Short-circuiting:
- stops evaluating when result is already known
- a && b → if a is false, b is never checked.
- a || b → if a is true, b is never checked.
- stops evaluating when result is already known
This is often used for default values in JavaScript.
Examples
let age = 20, hasID = true;
console.log(age >= 18 && hasID); // true
console.log(age < 18 || hasID); // true
console.log(!hasID); // false
let username = "";
let displayName = username || "Guest";
console.log(displayName); // Guest
Challenges
1. Check if number between 10 and 20
- Write a condition that checks if a number is between 10 and 20 (inclusive).
💡 Show Answer
let num = 15;
console.log(num >= 10 && num <= 20);
2. Driving check
- Check if a person can drive: must be at least 18 and have a driving license.
💡 Show Answer
let age = 18, hasLicense = true;
console.log(age>=18 && hasLicense);
3. Welcome if logged in or guest
- Write a condition that prints
"Welcome"if a user has logged in or is a guest.
💡 Show Answer
let isLoggedIn=false, isGuest=true;
console.log(isLoggedIn || isGuest ? "Welcome":"");
4. Flip boolean
- Use ! to flip the result of a boolean variable
isActive.
💡 Show Answer
let isActive=true;
console.log(!isActive);
5. Secure data access
- Demonstrate short-circuiting with && by writing a condition that only prints
"Accessing secure data..."ifisLoggedInis true.
💡 Show Answer
let isLoggedIn = true;
isLoggedIn && console.log("Accessing secure data...");
6. Default with OR
- Use || to assign a default value to a variable if it is
nullorundefined.
💡 Show Answer
let username = "";
username = username || "Guest";
console.log(username);
7. Predict outputs
- Predict the output of:
- console.log(true || false && false);
- console.log(!(false || true));
- console.log("" || "Hello");
- console.log("Hi" && "Bye");
💡 Show Answer
console.log(true || false && false); // true
console.log(!(false || true)); // false
console.log("" || "Hello"); // Hello
console.log("Hi" && "Bye"); // Bye
8. Valid grade
- Write a function
isValidGrade(grade)that returnstrueifgradeis between 0 and 100.
💡 Show Answer
function isValidGrade(g){
return g>=0 && g<=100;
}
console.log(isValidGrade(85));
9. Simple login
- Build a simple login system where the user must have the right username and password.
💡 Show Answer
let user="admin", pass="1234";
console.log(user==="admin" && pass==="1234" ? "Login success":"Invalid");
10. Majority vote
- Write a function
majorityVote(a, b, c)that returns true if at least two of the three boolean inputs are true.
💡 Show Answer
function majorityVote(a,b,c){
return (a+b+c) >= 2;
}
console.log(majorityVote(true,true,false));