nullまたはundefinedの判定(Null合体演算子)
create: 3/7/2020
JavaScript

JavaScript で変数 anull または undefined の場合、デフォルト値 0 を返したいコード。
そんなときどう書きますか?

素直に書くとこんなコード

if(a === null || a === undefined) {
    return 0
}
return a

ダメなコード

これはダメな例。変数afalsyな値、0falseでも0を返してしまいます。

if(!a) {
    return 0
}
return a

asis

まあこんな風に書くと思います。
nullundefined変数 == nullで一発判定できるし、三項演算子を使えば1行でしょ?

return a == null ? 0 : a

ありきたりなこのコードが

tobe

なんと??

return a ?? 0

ウルトラスッキリ!

?? ってなにこれ?

日本語でNull合体演算子と言うそうです。

nullundefinedに反応するのがポイント。
それ以外はfalsyな値でもそのまま返せます。

0 ?? 1 // 0
false ?? 0 // false
'' ?? 0 // ''
NaN ?? 0 // NaN

超便利!

参考資料

Null合体演算子 - MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operato