It is used when you want to return a default value if left-hand-side value/condition is null or undefined only
Example:
const getVal = (target) => {
return target.value ?? 'default';
};
console.log(
getVal({ value: 'Hello'}),
getVal({ value: 0 })
getVal({ value: ''}),
getVal({})
);
Output:
Hello 0 default
It is different from Logical-Or operator, ||
|| checks if the left-hand value/condition is falsy
Example:
const getVal = (target) => {
return target.value || 'default'
};
console.log(
getVal({ value: 'Hello'}),
getVal({ value: 0 }),
getVal({ value: ''}),
getVal({})
);
Output:
Hello default default default
DIFFERENCE
?? returns default when left-hand-value/condition is null or undefined only.
|| returns default when left-hand-value/condition is falsy.
Note: Older browsers may need a polyfill
Top comments (0)