2020-03-07

nullまたはundefinedの判定(Null合体演算子)

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


猫派 / 基本インドア / ガジェット大好き / RDP推進派
コロナ禍の趣味はPC+VRでゲーム。
最近のゲーム:Factorio / BeatSaber / にゃんこ大戦争

→ Policy