Short Circuit Evaluation in JavaScript
Introduction
Short circuit evaluation is a rule in JavaScript that helps decide the result of logical expressions (&&
and ||
). It checks values from left to right and stops as soon as the result is clear. This makes code shorter and faster.
- It helps reduce extra checks.
- It makes the code clean and simple.
- It works with truthy and falsy values.
Short Circuiting with &&
(AND Operator)
The &&
operator stops when it finds the first falsy value. If all values are truthy, it returns the last one.
Example:
console.log(true && false); // false (stops at false)
console.log(true && true); // true (both are true, so returns last value)
console.log(true && true && false); // false (stops at false)
console.log(false && true && true); // false (stops at false, does not check further)
Real-World Example:
const firstName = 'Pratap';
const midName = null;
const lastName = 'Das';
// Traditional way
if (firstName == null || midName == null || lastName == null) {
console.log('There is a null value');
}
// Short circuit way
const firstNullValue = firstName && midName && lastName;
console.log(firstNullValue); // null (stops at midName, which is falsy)
if (firstNullValue == null) {
console.log('There is a null value');
}
// Another short circuit method
if (!(firstName && midName && lastName)) {
console.log('There is a null value');
}
Short Circuiting with ||
(OR Operator)
The ||
operator stops when it finds the first truthy value. If all values are falsy, it returns the last one.
Example:
console.log(true || false); // true (stops at first true value)
console.log(false || true); // true (stops at first true value)
console.log(false || false || true); // true (stops at first true value)
console.log(false || 0 || null); // null (no truthy value, returns last falsy value)
Real-World Example:
let username = '' || 'Guest';
console.log(username); // 'Guest' (since '' is falsy, 'Guest' is returned)
let userInput = null;
let userResponse = userInput || 'Default Response';
console.log(userResponse); // 'Default Response' (since null is falsy, uses fallback value)
Why is Short Circuiting Useful?
- It reduces the need for if-else conditions.
- It makes code cleaner and easier to read.
- It is useful for setting default values and running conditions.
Understanding short circuit evaluation helps write better JavaScript code! 🚀