【JAVASCRIPT】JavaScriptの真偽値(Boolean)について
JavaScriptの真偽値とは
JavaScriptの真偽値(Boolean)は、プログラミングにおいて重要なデータ型の一つです。真偽値は、「真(true)」または「偽(false)」の2つの値を持ちます。
真偽値リテラル(Boolean literals)
真偽値リテラルの意味
true: 真を意味する値。条件が成立している場合や、論理式が true である場合に使用されます。
false: 偽を意味する値。条件が成立していない場合や、論理式が false である場合に使用されます。
真偽値リテラルは、直接 true または false として書かれます。
- let isTrue = true;
- let isFalse = false;
真偽値の変換
JavaScriptでは、他のデータ型を真偽値に変換することができます。以下の値は「偽(false)」と見なされます。
1.false
2.0(数値のゼロ)
3.””(空文字列)
4.null
5.undefined
6.NaN(Not-a-Number)
これら以外の値はすべて「真(true)」と見なされます。
- console.log(Boolean(false)); // false
- console.log(Boolean(0)); // false
- console.log(Boolean("")); // false
- console.log(Boolean(null)); // false
- console.log(Boolean(undefined)); // false
- console.log(Boolean(NaN)); // false
- console.log(Boolean(1)); // true
- console.log(Boolean("Hello")); // true
- console.log(Boolean([])); // true
- console.log(Boolean({})); // true
条件文での利用
真偽値は、条件文(if文など)でよく使用されます。
- let value = 1;
- if (value) {
- console.log("Value is true");
- } else {
- console.log("Value is false");
- }
この場合、value が 1 であるため、「Value is true」が表示されます。
JavaScriptの真偽値変換
JavaScriptでは、数値や文字列などの他のデータ型が条件式で使用されると、自動的に真偽値に変換されます。この変換を「型変換(type coercion)」と呼びます。
「真(true)」として扱われる値: 数値の 0 以外のすべての数値、非空の文字列、オブジェクト、配列など
「偽(false)」として扱われる値: 数値の 0、空文字列 “”、null、undefined、NaN など
このルールにより、次のような条件文で value が 1 の場合、1 は「真(true)」と見なされます。
比較演算子
JavaScriptでは、比較演算子を使って値を比較し、その結果として真偽値を得ることができます。
- let a = 5;
- let b = 10;
- console.log(a < b); // true
- console.log(a > b); // false
- console.log(a === b); // false
- console.log(a !== b); // true
論理演算子
論理演算子を使って真偽値を操作することもできます。
AND(論理積): &&
OR(論理和): ||
NOT(否定): !
- let a = true;
- let b = false;
- console.log(a && b); // false
- console.log(a || b); // true
- console.log(!a); // false
- console.log(!b); // true
論理演算子 &&(AND)を用いた例
フォームの入力検証
ユーザーがオンラインフォームに入力する際に、ユーザー名とパスワードの両方が正しい形式であることを確認する例文です。
以下は、&& 演算子を使って両方の条件をチェックする例です。
- // ユーザーがフォームに入力した値
- let username = "user123";
- let password = "password123";
- // ユーザー名とパスワードの検証条件
- let isUsernameValid = username.length >= 6; // ユーザー名が6文字以上であること
- let isPasswordValid = password.length >= 8; // パスワードが8文字以上であること
- // 両方の条件を満たしているかを確認
- if (isUsernameValid && isPasswordValid) {
- console.log("ユーザー名とパスワードは有効です。");
- } else {
- console.log("ユーザー名またはパスワードが無効です。");
- }
このコードでは、isUsernameValid と isPasswordValid の両方が true である場合に、ユーザー名とパスワードが有効であると判断します。
どちらか一方でも false であれば、「ユーザー名またはパスワードが無効です。」と表示されます。
さらに複雑な例: 条件のネスト
- // ユーザーがフォームに入力した値
- let age = 25;
- let email = "user@example.com";
- let isNewsletterSubscribed = true;
- // 条件: 年齢が18以上で、メールアドレスが有効で、ニュースレターに登録している
- if (age >= 18 && email.includes("@") && isNewsletterSubscribed) {
- console.log("すべての条件を満たしています。");
- } else {
- console.log("条件のいずれかが満たされていません。");
- }
このコードでは、年齢が18歳以上、メールアドレスに「@」が含まれている、ニュースレターに登録しているという3つの条件をすべて満たしている場合に「すべての条件を満たしています。」と表示されます。
どれか一つでも条件が満たされていない場合は、「条件のいずれかが満たされていません。」と表示されます。