nullまたはundefinedの判定(Null合体演算子)
JavaScript で変数 a
が null
または undefined
の場合、デフォルト値 0
を返したいコード。
そんなときどう書きますか?
素直に書くとこんなコード
if(a === null || a === undefined) {
return 0
}
return a
ダメなコード
これはダメな例。変数a
がfalsy
な値、0
やfalse
でも0
を返してしまいます。
if(!a) {
return 0
}
return a
asis
まあこんな風に書くと思います。
null
とundefined
は 変数 == null
で一発判定できるし、三項演算子を使えば1行でしょ?
return a == null ? 0 : a
ありきたりなこのコードが
tobe
なんと??
return a ?? 0
ウルトラスッキリ!
?? ってなにこれ?
日本語でNull合体演算子
と言うそうです。
null
かundefined
に反応するのがポイント。
それ以外は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