JavaScript のブーリアン
1. ブーリアン(Boolean)データ型
JavaScript において、ブーリアンは以下の 2 つの値のうちいずれか 1 つしか取ることができないプリミティブデータ型です。
- true(真)
- false(偽)
エクスプレッション(式)が返すブーリアン値は、JavaScript におけるすべての比較(Comparisons)および条件(Conditions)の基礎となります。
2. ブーリアンの主な特徴
trueとfalseはブーリアンデータ型そのものです。- ブーリアン値として取り得るのは
trueとfalseの 2 つのみです。 - これらは必ず小文字で記述する必要があります。
- 文字列ではないため、クオーテーション(引用符)なしで記述します。
3. ブーリアンのユースケース
プログラミングでは、以下のような「2 つの状態のいずれか」を表現するデータ型が頻繁に必要になります。
- はい(Yes)か、いいえ(No)か
- オン(On)か、オフ(Off)か
- 正しい(True)か、誤り(False)か
ブーリアン値は、JavaScript プログラミングにおける論理演算と制御フローの根幹を成す要素です。
4. 比較(Comparisons)
JavaScript のすべての比較演算子(==, !=, <, > など)は、比較の結果として true または false を返します。
x = 5 の場合の比較例を以下に示します。
| 説明 | 例 | 返り値 |
|---|---|---|
| 等しい(Equal to) | (x == 8) | false |
| 等しくない(Not equal to) | (x != 8) | true |
| より大きい(Greater than) | (x > 8) | false |
| より小さい(Less than) | (x < 8) | true |
4.1 コード例
let x = 5;
(x == 8); // false を返します
(x != 8); // true を返します5. 条件式(Conditions)
ブーリアンは if 文の中で多用され、ロジックに基づいてどのコードブロックを実行するかを決定します。
| 例 | 結果 |
|---|---|
if (day == "Monday") | true または false |
if (salary > 9000) | true または false |
if (age < 18) | true または false |
5.1 if 文の例
if (hour < 18) {
greeting = "こんにちは";
} else {
greeting = "こんばんは";
}5.1 if 文の例
| 説明 | 例 |
|---|---|
| For ループ | for (i = 0; i < 5; i++) |
| While ループ | while (i < 10) |
| For in ループ | for (x in person) |
| For of ループ | for (x of cars) |
6.1 While ループの例
while (i < 10) {
text += i;
i++;
}7. Boolean() 関数
Boolean() 関数を使用すると、エクスプレッション(または変数)が true かどうかを確認できます。
Boolean(10 > 9); // true を返しますあるいは、関数を使わずに直接評価することも可能です。
(10 > 9); // true を返します8. 「値」を持つものはすべて True(Truthy)
JavaScript では、実質的な値を持つものはすべて true として評価されます。これらを Truthy な値と呼びます。
8.1 Truthy の例
100はtrue3.14はtrue-15はtruetrueはtrue"Hello"はtrue"false"(文字列としてのfalse)はtrue(7 + 1 + 3.14)(計算結果)はtrue
9. 「値」を持たないものはすべて False(Falsy)
実質的な値を持たないものは false として評価されます。これらを Falsy な値と呼びます。
9.1 Falsy の例
0(数値のゼロ)""(空文字)undefinednullNaN(Not-a-Number)false
9.2 個別の評価例
let x = 0;
Boolean(x); // false
let y = -0;
Boolean(y); // false
let z = "";
Boolean(z); // false
let a; // undefined
Boolean(a); // false
let b = null;
Boolean(b); // false
let c = false;
Boolean(c); // false
let d = 10 / "こんにちは"; // NaN
Boolean(d); // false10. オブジェクトとしてのブーリアン
通常、JavaScript のブーリアンはリテラルから作成されるプリミティブ値です。
let x = false;しかし、new キーワードを使用してオブジェクトとして定義することも可能です。
let y = new Boolean(false);10.1 型の比較
let x = false;
let y = new Boolean(false);
// typeof x は "boolean" を返します
// typeof y は "object" を返します11. 注意事項:Boolean オブジェクトは避ける
実務において、Boolean オブジェクトを作成することは推奨されません。new キーワードを使用するとコードが複雑になり、実行速度が低下する可能性があります。また、以下のような予期せぬ結果を招くことがあります。
11.1 比較時の挙動
プリミティブとオブジェクトを比較すると、意図しない結果になることがあります。
let x = Boolean(false);
let y = new Boolean(false);
(x == y); // true (値が等しいため)
(x === y); // false (型が異なるため:プリミティブ vs オブジェクト)さらに、JavaScript において 2 つのオブジェクトを比較した場合、常に false が返されます。 オブジェクトの内容が同じであっても、参照先が異なるためです。