javascriptでif文を書いてた時に混乱した条件式の書き方。trueとfalseの判定がどうなっているのかまとめます。
判定用の式
![判別式](https://scominc.co.jp/blog/.assets/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%EF%BC%8D%E5%88%A4%E5%88%A5%E5%BC%8F.png)
引数strがtureだったらtureを、falseだったらfalseを返す式です。
真偽値の結果
1.数字
まずは数字。1,0,-1で確認します。
![数字](https://scominc.co.jp/blog/.assets/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%EF%BC%8D%E6%95%B0%E5%AD%97.png)
結果は、次のようになりました。
![数字の真偽値結果](https://scominc.co.jp/blog/.assets/%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%EF%BC%8D%E6%95%B0%E5%AD%97.png)
0はfalseなんですね。条件式を書くときに引っかかりそう。
2.文字列
次は文字列です。
![文字列](https://scominc.co.jp/blog/.assets/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%EF%BC%8D%E6%96%87%E5%AD%97%E5%88%97.png)
空欄と文字に加えて、それぞれの論理否定も。
![文字列の真偽値](https://scominc.co.jp/blog/.assets/%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%EF%BC%8D%E6%96%87%E5%AD%97%E5%88%97.png)
3.配列
配列も見ていきます。
![配列の真偽値](https://scominc.co.jp/blog/.assets/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%EF%BC%8D%E9%85%8D%E5%88%97.png)
一緒に配列の長さもチェックします。
![配列の真偽値](https://scominc.co.jp/blog/.assets/%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%EF%BC%8D%E9%85%8D%E5%88%97.png)
要素がなくても配列そのものはtrueが返ってきました。
要素がない配列の長さArray.lengthは、falseです。
条件式を書くときにわからなくなりそう。
4.その他
他にも気になるものも見てみます
![](https://scominc.co.jp/blog/.assets/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%EF%BC%8D%E3%81%9D%E3%81%AE%E4%BB%96.png)
![その他真偽値-結果](https://scominc.co.jp/blog/.assets/%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%EF%BC%8D%E3%81%9D%E3%81%AE%E4%BB%96-1675914c.png)
nullもindefinedもfalse。これは予想どおりです。
まとめ
if文の条件式で、trueになるかfalseになるか想定外の動きにならないように取りうる値をきちんと整理する必要がありそうです。