15.9Comparison Operators & Equality / Nullish Coalescing Operator

Nullish Coalescing Operator (`??`)

Nullish Coalescing Operator (`??`) は、左辺のオペランドが `null` または `undefined` の場合に右辺のオペランドを返します。`0` や空文字列のような falsy な値と区別したい場合に使用します。

従来の `||` 演算子は、左辺が falsy な値(`0`, `''`, `false` など)の場合に右辺を返しました。しかし、`0` や空文字列が有効な値であるケースもあります。`??` は `null` と `undefined` のみをチェックするため、これらの有効な falsy な値を誤ってデフォルト値で上書きしてしまうことを防ぎ、より厳密なデフォルト値の設定が可能になります。

❌ Bad
// bad (if 0 is a valid value)
const value = 0 || 'default'; // returns 'default'
✅ Good
// good
const value = 0 ?? 'default'; // returns 0

const anotherValue = null ?? 'default'; // returns 'default'