Logical Operators
Logical operators are used to combine multiple conditions.
| Operator | Meaning | Description |
| && | AND | All conditions must be true |
| || | OR | true if at least one condition is true |
| ! | NOT | Reverses the condition |

&& (Logical AND)
This returns true only when all conditions are true.
console.log(true && true); // true
console.log(true && false); // falseBut in JavaScript, it does not always return true/false. It returns actual values.
console.log(5 && 10); // 10
console.log(0 && 10); // 0How it works:
- It checks left → right
- If it finds a falsy value, it stops and returns it
- If all are true, it returns the last value
Falsy values:
false, 0, “”, null, undefined, NaN
Example:
let age = 20;
let hasID = true;
console.log(age >= 18 && hasID); // true|| (Logical OR)
This returns true if at least one condition is true.
console.log(true || false); // true
console.log(false || false); // falseBut again, it returns actual values:
console.log(0 || 10); // 10
console.log(5 || 10); // 5How it works:
- It checks left → right
- Returns the first truthy value
- If none found, returns last value
Example:
let userName = "" || "Guest";
console.log(userName); // "Guest"! (Logical NOT)
This reverses the boolean value.
console.log(!true); // false
console.log(!false); // trueIt first converts value to boolean, then reverses it:
console.log(!0); // true
console.log(!"Hello"); // falseDouble NOT is often used to convert any value into boolean:
console.log(!!"Hello"); // true
console.log(!!0); // false