What are Logical Operators?
Logical operators let you combine multiple conditions. They're like the words "and", "or", and "not" in programming!
&&AND
Both must be true
||OR
At least one must be true
!NOT
Reverses true/false
Quick Example
⚡ javascript
1
2
3
4
5
6
7
8
9
10
11
12
const age = 20
const hasLicense = true
// AND: Both must be true
if (age >= 18 && hasLicense) {
console.log('You can drive!') // This runs
}
// OR: At least one must be true
if (age >= 21 || hasLicense) {
console.log('Special access!') // This also runs
}AND Operator (&&)
The && operator returns true only when BOTH conditions are true.
How && Works
⚡ javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
// Truth table for &&
console.log(true && true) // true
console.log(true && false) // false
console.log(false && true) // false
console.log(false && false) // false
// Real example
const age = 25
const hasID = true
if (age >= 21 && hasID) {
console.log('Can buy alcohol') // Runs (both true)
}Multiple ANDs
⚡ javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const username = 'player1'
const password = 'secret'
const isActive = true
if (username === 'player1' && password === 'secret' && isActive) {
console.log('Login successful!') // All three must be true
}
// Can break into multiple lines for readability
if (
username === 'player1' &&
password === 'secret' &&
isActive
) {
console.log('Welcome!')
}Think of && as:
"You need BOTH a ticket AND an ID to enter the concert."
OR Operator (||)
The || operator returns true when AT LEAST ONE condition is true.
How || Works
⚡ javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
// Truth table for ||
console.log(true || true) // true
console.log(true || false) // true
console.log(false || true) // true
console.log(false || false) // false
// Real example
const isWeekend = true
const isHoliday = false
if (isWeekend || isHoliday) {
console.log('No school!') // Runs (one is true)
}Checking Multiple Values
⚡ javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const role = 'admin'
if (role === 'admin' || role === 'moderator' || role === 'owner') {
console.log('You have special permissions!')
}
// Example: Accept multiple payment methods
const paymentMethod = 'credit card'
if (paymentMethod === 'credit card' ||
paymentMethod === 'PayPal' ||
paymentMethod === 'crypto') {
console.log('Payment accepted!') // Runs
}Think of || as:
"You can pay with cash OR card OR mobile payment."
NOT Operator (!)
The ! operator reverses a boolean value. True becomes false, false becomes true!
How ! Works
⚡ javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Reversing booleans
console.log(!true) // false
console.log(!false) // true
const isLoggedIn = false
if (!isLoggedIn) {
console.log('Please log in') // Runs (not logged in)
}
const hasSubscription = true
if (!hasSubscription) {
console.log('Subscribe now!') // Does NOT run
}Combining with Other Operators
⚡ javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const age = 15
const hasPermission = false
// NOT with AND
if (age >= 18 && !hasPermission) {
console.log('Adult but no permission')
}
// NOT with OR
if (!hasPermission || age < 13) {
console.log('Access restricted') // Runs (no permission)
}
// Double NOT (rarely used, but good to know)
console.log(!!true) // true (reverses twice)
console.log(!!'text') // true (converts to boolean)Practical Examples
⚡ javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const items = []
if (!items.length) {
console.log('Cart is empty') // Runs (length is 0)
}
const username = ''
if (!username) {
console.log('Please enter a username') // Runs (empty string)
}
const isVisible = true
if (!isVisible) {
console.log('Hidden')
} else {
console.log('Visible') // Runs
}Challenge: Event Entry System
Check if someone can enter an event and if they can skip the line!