(式と演算子)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing
Null 合体演算子(??)は、左辺がnull または undefinedの場合だけ右辺を返す。左辺の値が、null または undefined以外の場合は左辺を返す。
『 null ?? 20 』の場合、左辺の値がnullなので、右辺の値(正の数字20)が返される。
// fugaがnullかundefinedだったら、デフォルト値をいれたい
let fuga;
const hoge = fuga ?? 'default value';
console.log(hoge);
>> default value
const a = 0
const b = false
const c = undefined
const d = null
const isNullish = (value) => value ?? "null or undefined"
isNullish(a) // 0
isNullish(b) // false
isNullish(c) // "null or undefined"
isNullish(d) // "null or undefined"
|| との違い
||によるショートサーキット評価でも同じことができるが、??のほうがより厳格になる。
||は、左辺がfalsyな値だと右辺を評価する。null,unidefinedに加えて以下の場合も含まれる。
- false
- 0
- 0n
- NaN
- “”(空文字)
??は、左辺がnull,unidefinedのときだけ右辺を評価する。