🚀

Null合体演算子 (??)と論理和演算子 (||)

2024/07/06に公開

Null合体演算子とは

??Null合体演算子と呼ばれ、左側の値が null または undefined の場合に右側の値を返します。それ以外の場合は左側の値を返します。

const name = null;
const defaultName = 'Guest';

console.log(name ?? defaultName); // 'Guest'

const age = 0;
const defaultAge = 18;

console.log(age ?? defaultAge); // 0 (ageはnullでもundefinedでもないため)

論理和演算子とは

||論理和演算子と呼ばれ、左側の値が「偽」と評価される場合に右側の値を返します。「偽」と評価される値には、以下のものがあります

false
0
'' (空文字列)
null
undefined
NaN (Not a Number)

const name = '';
const defaultName = 'Guest';

console.log(name || defaultName); // 'Guest' (空文字列は「偽」と評価されるため)

Null合体演算子と論理和の違い

Null合体演算子(??)
左側の値が null または undefined の場合に右側の値を返します。
それ以外の場合は左側の値を返します。

論理和演算子(||)
左側の値が「偽」と評価される場合に右側の値を返します。
「偽」と評価される値には、false, 0, '', null, undefined, NaN があります。

const name = '';
const defaultName = 'Guest';

console.log(name || defaultName); // 'Guest' (空文字列は「偽」と評価されるため)
console.log(name ?? defaultName); // '' (空文字列は `null` でも `undefined` でもないため)
const count = 0;
const defaultCount = 10;

console.log(count || defaultCount); // 10 (0は「偽」と評価されるため)
console.log(count ?? defaultCount); // 0 (0は `null` でも `undefined` でもないため)
const value = null;
const defaultValue = 'default';

console.log(value || defaultValue); // 'default' (nullは「偽」と評価されるため)
console.log(value ?? defaultValue); // 'default' (nullは `null` であるため)

Discussion