JavaScript Logical Operators


What Are Logical Operators?

Logical operators are used to perform boolean logic between two or more expressions. They return true or false based on the logic applied.

These operators are mostly used in conditional statements, loops, and decision-making processes.


Types of Logical Operators

Operator Name Description Example Output
&& Logical AND Returns true if both operands are true true && true true
` ` Logical OR Returns true if at least one is true
! Logical NOT Reverses the boolean value !true false

1. Logical AND (&&)


Returns true only if both conditions are true.

let age = 25;
let hasID = true;
if (age >= 18 && hasID) {
console.log("Entry allowed");
} else {
console.log("Entry denied");
}
// Output: Entry allowed

More examples:

console.log(true && true); // Output: true
console.log(true && false); // Output: false
console.log(false && false); // Output: false

2. Logical OR (||)

Returns true if at least one of the conditions is true.

let isAdmin = false;
let isModerator = true;
if (isAdmin || isModerator) {
console.log("Access granted");
} else {
console.log("Access denied");
}
// Output: Access granted

More examples:

console.log(true || false); // Output: true
console.log(false || false); // Output: false

3. Logical NOT (!)


Reverses the boolean value — true becomes false, and vice versa.

let isLoggedIn = false;
if (!isLoggedIn) {
console.log("Please log in");
}
// Output: Please log in

More examples:

console.log(!true); // Output: false
console.log(!false); // Output: true

Logical Operators with Non-Boolean Values


JavaScript treats non-boolean values using truthy/falsy rules:

  • Falsy values: 0, "" , null, undefined, NaN, false
  • Truthy values: All others (non-zero numbers, non-empty strings, etc.)
console.log(0 && "Hello"); // Output: 0 (falsy value stops the
evaluation)
console.log("User" || "Guest"); // Output: "User" (truthy value
returns first match)
console.log(!0); // Output: true

Short-Circuit Behavior

  • && stops at the first falsy value
  • || stops at the first truthy value
let result1 = false && "Hello"; // false (short-circuits at false)
let result2 = true || "World"; // true (short-circuits at true)
console.log(result1, result2);

Use Case in Conditions

let age = 20;
let hasTicket = true;
if (age >= 18 && hasTicket) {
console.log("You may enter.
");
} else {
console.log("Access denied.
");
}
// Output: You may enter.

Recap

Operator Meaning Returns true When...
&& AND Both expressions are true
` `
! NOT Expression is false