概要
javascriptの論理値について、プログラムを書いて確かめます。
他のプログラム言語ではboolean型として、書くケースが多い論理値です。
真か偽か、trueかfalseか、といった2つのみの値を持つ変数になりますが、javascriptは特有のケースがあります。
変数の判定式を試す
論理値のサンプルを書いてみます。
以下のコードを書いて実行させてみます。
var test = 10; if (test == 10) { console.log("一致する"); } else { console.log("一致しない"); }
実行すると「一致する」という結果になります。これは論理値の比較ではなく、変数の値の比較なので一致するという結果になります。
では、一度代入した変数そのものをif分で比較してみます。
var test = 10; if (test) { console.log("一致する"); } else { console.log("一致しない"); }
上記の場合は「test」という部分がtrueかfalseかを判定する論理値になっている状態です。
結果は「一致する」という出力になります。
変数の判定式を試す(その2)
上記のように式全体の場合はわかりやすい例と言えます。
では、次のような例を書いて試してみます。
var test2 = null; if (test2) { console.log("TRUE"); } else { console.log("FALSE"); }
この場合、test2という変数に対し、nullを代入しています。
その変数そのものをif分で判定すると、falseが返り、コンソールログ上の出力結果は「FALSE」となります。
このように、javascriptでは論理値でFALSEと判定される値があります。
必ずfalseになる値について
以下の値はfalseになります。
undefined null 0 -0 NaN
配列の場合の判定結果
また、次のように配列を記述した場合
var testarray = [1, 2, 3, 4]; if (testarray) { console.log("TRUE"); } else { console.log("FALSE"); }
この場合の実行結果は「TRUE」になります。
また、論理値にはtoString()メソッドが使え、このメソッドを使った時はtrueかfalseがそのまま文字列として変数などに格納されます。