Nullish Coalescing Operator Javascript
- The
??operator in JavaScript is called the nullish coalescing operator. - It is used to provide a default value when the left-hand operand is
nullorundefined. - Unlike the logical OR (
||), it does not treat other falsy values (like0,false, or an empty string"") as needing a fallback.
Syntax:
let result = value1 ?? value2;
- If
value1is not null or undefined,resultisvalue1. - If
value1is null or undefined,resultisvalue2.
Example:
let name = null;
let defaultName = "Guest";
let result = name ?? defaultName; // result = "Guest"
Difference from ||:
The || operator falls back on value2 if the left-hand value is any falsy value (null, undefined, 0, false, "", etc.).
Comparison:
let num = 0;
// Using ||
let result1 = num || 10; // result1 = 10 (0 is falsy)
// Using ??
let result2 = num ?? 10; // result2 = 0 (0 is not null or undefined)
Use Case:
The ?? operator is particularly useful when you want to handle null or undefined without treating other falsy values as invalid.
Example:
function getUserName(name) {
return name ?? "Anonymous";
}
console.log(getUserName(null)); // "Anonymous"
console.log(getUserName("Alice")); // "Alice"
console.log(getUserName(0)); // 0 (not replaced)