|| operator treats 0 and ” as falsy. ?? only checks null/undefined.
Problem with ||:
const count = 0; const display = count || 10; // Returns 10 (wrong!) // 0 is falsy, so falls back to 10
Solution with ??:
const count = 0; const display = count ?? 10; // Returns 0 (correct!) // Only null/undefined triggers fallback const name = ''; const userName = name ?? 'Guest'; // Returns '' (empty string is valid)
Use Cases: Default values for numbers, empty strings, false booleans where they’re valid values
