switch 文内では、null は false の扱いにならないのでしょうか?
カフェにWifiがあるか、条件分岐で表示しようと考えます。
has_wifiはboolean型で、cafe = {has_wifi: null}
であるとします。
以下のようにswitch文を書くと、
let has_wifi = "初期値" switch (cafe.has_wifi) { case true: has_wifi = "あり"; break; case null: has_wifi = "不明"; break; case false: has_wifi = "なし"; break; default: break; }
最終的に、has_wifi = "不明"
となりました。これは考えていた通りの挙動で、has_wifi
がtrueではなく、nullであるから、そこでbreak;
するのは納得がいきます。
しかし、以下のようにしたとき
let has_wifi = "初期値" switch (cafe.has_wifi) { case true: has_wifi = "あり"; break; case false: has_wifi = "なし"; break; case null: has_wifi = "不明"; break; default: break; }
false では break されず、case null
にしっかり入って、has_wifi = "不明"
を返します。
これってつまり、javascript では null
はfalse
ではないということでしょうか?
それとも、switch文ではもっと厳密?に判断されるということでしょうか?
よろしくお願いいたします。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。