ある条件下で値をtrue(真)かfalse(偽)か判定させるために、使われているのが論理型です。JavaScriptでは、条件分岐や繰り返し文などのさまざまな処理で論理値が利用されています。

そこで今回は、論理型とは何か、またその判定結果について解説していきます。

論理型(Boolean)

論理型が持つ値は、trueまたはfalseの2つのみです。

trueは真(正しい)を意味し、falseは偽(正しくない)を意味します。このtrueやfalseの値のことを「論理値」または「真偽値」と呼びます。

typeof演算子を使ってtrueとfalseの型を調べると"boolean"と表記されます。

console.log(typeof true); // "boolean"
console.log(typeof false); // "boolean"

論理型は、このようにtrueまたはfalseの値を格納することができます。

let over16YearsOld = true; // 16歳以上はOK
let under15YearsOld = false; // 15歳以下はNG

また、論理型は、比較の判定をする際によく利用されています。

console.log(3 < 5); // true
console.log('javascript' === 'JavaScript'); // false

例えば、ある条件下において値が正しい場合は1の処理を、正しくない場合は2の処理を行いたい時などです。JavaScriptでは、if文やfor文などが該当します。

if (3 < 5) { // 値がtrueのため、1の処理を行う
  console.log('1: 値は正しいです'); 
} else { 
  console.log('2: 値は間違いです');
}

// "1: 値は正しいです"

論理型の判定

ある条件下におけるプログラムを作成する際には、論理型がtrueと判定するか、falseと判定するかを理解しておくことが大切です。

では、どのような値がtrueとみなされるのか、またfalseとみなされるのかについて見ていきましょう。

ここでは、if文を例に取り上げながら論理型の判定を解説していきます。
難しいことは取り上げませんが、あらかじめif文について学習したい方は以下の記事を参考にしてください。

falseとみなされる値

まずは、falseとみなされる値です。
その他の値はtrueとみなされる値となるため、これらを先に覚えておくと便利です。

falseとなる値は8つあります。

意味
false falseキーワード
0 数値のゼロ
-0 数値のマイナスゼロ
0n BigInt型の0n
“” 空の文字列
null 値が存在しない
undefined 未定義の値
NaN 非数

これらの値をif文の条件式に記述すると、falseと評価され、ifブロックの処理は実行されません。

if (false) {}
if (0) {}
if (-0) {}
if (0n) {}
if ("") {}
if (null) {}
if (undefined) {}
if (NaN) {}

以下は、if文の条件式に空の文字列が記述されているため、falseと判定され、ifブロックを実行せず、elseブロックの処理が実行されます。

if ("") { 
  console.log('true');
} else {
  console.log('false'); 
}

// "false"

trueとみなされる値

falseとみなされる値以外は、すべてtrueとみなされる値です。
例えば以下のような値が該当します。

意味
true trueキーワード
10 数値
“文字列” 文字列
1n 長整数
{} オブジェクト
[] 配列

これらの値をif文の条件式に記述すると、trueと評価され、ifブロックの処理を実行します。

if (true) {}
if (10) {}
if ("文字列") {}
if (1n) {}
if ({}) {}
if ([]) {}

以下は、if文の条件式に100という数値が記述されているため、trueと判定され、ifブロックに書かれている処理が実行されています。

if (100) { 
  console.log('true');
} else {
  console.log('false'); 
}

// "true"

まとめ

今回は、論理型について解説しました。
if文のような論理値が要求される場面では、値がtrueとなるのかfalseとなるのか理解していないと、意図した処理結果を得られない可能性があります。

この機会にtrueとなる値、falseとなる値を覚えておきましょう。

合わせて読みたいデータ型入門シリーズ

第1回:データ型とtypeof演算子
第2回:データ型 -プリミティブ
第3回:データ型 -オブジェクト
第4回:文字列型(String)
第5回:数値型(Number)
第6回:論理型(Boolean)(当記事)
第7回:null型・undefined型