Javascript

JavaScript Truthy/Falsy 解説:初心者向け実務ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

JavaScript 条件文 Truthy Falsy 使い分け:初心者向けの実務ガイド

JavaScriptを学ぶ中で「なぜ条件文が思った通り動かないのか」と悩むことは多いです。特にtruthy(真値)とfalsy(偽値)という概念は、初学者にとってやや抽象的ですが、実際のコードでは頻繁に登場します。
本記事では、truthy/falsyの定義から、条件文での挙動、実務で役立つ使い分け方までをわかりやすく解説。コードサンプルを使って理解を深め、間違いやすいポイントも避けてください。


真理値の基本概念:truthyとfalsyとは?

JavaScriptでは、条件文(if/elseなど)で使われるtruefalse以外にも、評価結果が「真」または「偽」とみなされる値があります。これをtruthy(真値)・falsy(偽値)と呼びます。

JavaScriptにおける真偽判定の仕組み

JavaScriptは条件文で使用する値を自動的にBoolean()に変換します。このとき、以下のような値がfalsyとして扱われます:

  • false
  • 0
  • ""(空文字)
  • null
  • undefined
  • NaN

一方、それ以外のすべての値はtruthyとみなされます。例えば、"0"[](空配列)、{}(空オブジェクト)もtruthyです。

true/false以外の評価結果を表にまとめた例

注意:空配列や空オブジェクトはtruthyとなるため、存在チェックと値チェックを混同すると想定外の動作になります。具体的には:
- 存在チェック(value !== null && value !== undefined)が必要な場合
- 値チェック(valueがtruthyかfalsyか)が必要な場合


条件文での挙動:if/elseの評価ルール

JavaScriptでは、if (値)のように書かれた条件式がtruthy/falsyで実行されるかどうかを判断します。この仕組みは、すべての条件文に共通しています。

if文の実行フロー例

以下のようなコードを考えます:

この場合、value0でありfalsyなので、elseブロックが実行され、「値がfalseと評価されました」と表示されます。

論理演算子との組み合わせ

論理演算子(&&, ||)を使うと、truthy/falsyの挙動がさらに複雑になります。

例1: &&(AND)演算子

結果:bは0なのでfalsy。よってelseが実行され、「どちらかがfalseです」と表示されます。

例2: ||(OR)演算子

結果:dはtruthyなので、条件文を実行し、「どちらかがtrueです」と表示されます。

ポイント:論理演算子はtruthy/falsyの評価に大きく依存するため、誤解を招きやすいです。特に||&&を使った場合、意図しない結果になることがあります。


おすすめの使い分け方:状況に応じた判定方法

truthy/falsyは便利ですが、すべての場面で使ってよいわけではありません。特に「存在チェック」と「値チェック」を混同すると問題が発生します。

存在チェックと値チェックの違い

存在チェックとは、nullundefinedかどうかを判断するもので、以下のように書きます:

値チェックは、具体的な内容(例: 空文字や0)が含まれているかを判断します:

注意点[]{}はtruthyとなるため、存在チェックとして使うには明示的な比較が必要です。

明示的なBoolean型への変換

truthy/falsyの挙動が予測しにくい場合は、Boolean()関数を使って明示的に評価すると安全です:

おすすめの書き方:条件文で「0や空文字」をtrueとみなしたい場合は、Boolean()を使って明示的に評価しましょう。


注意点とよくある間違い:実務で発生する典型例

truthy/falsyは便利ですが、誤った使い方をしている開発者も多いです。特に以下のようなミスに注意してください。

等価演算子(==)との混同

等価演算子==は、型の変換を行って比較するため、truthy/falsyと混同しやすいです:

このコードでは""(空文字)が0に等しいと判定されますが、これは型変換による仕様です。

避けるべき書き方==ではなく、===を使った厳密な比較を推奨します。

ループ条件での落とし穴

ループの条件式でtruthy/falsyを使うと、意図しないループ回数になることがあります:

このコードではi=0なのでfalsyとなり、ループは一度も実行されません

注意点while (true)など、明示的な条件式を使うと読み間違いが減ります。


実際に試してみましょう:コードサンプルの実験

truthy/falsyを理解するには、実際に動かしながら学ぶことが効果的です。以下のような簡単な例で確認してください。

オンラインエディタでのテスト方法

  1. CodePenやJSFiddleなどを使って以下のコードを入力します。
  2. 実行結果を見て、truthy/falsyがどう評価されるか確認してください。

サンプルコード:truthy/falsyの挙動

よくあるデバッグケース

  • 例:0をfalseとして扱いたい場合
    javascript
    let value = 0;
    if (value) {
    console.log("OK");
    } else {
    console.log("NG"); // 実行される(0はfalsy)
    }

  • 正しい処理:0をtrueとして扱いたい場合
    javascript
    let value = 0;
    if (value !== 0) {
    console.log("OK");
    } else {
    console.log("NG"); // 実行される(値が0なので)
    }


まとめ:truthy/falsyのポイント

  • truthyとは、Boolean()変換でtrueとみなされるすべての値
  • falsyは以下6つだけ:false, 0, "", null, undefined, NaN
  • 条件文ではtruthy/falsyが自動的に評価されるため、if (value)のように書ける
  • ただし、明示的な存在チェックや厳密な比較が必要な場合は!==Boolean()を使う
  • 実務でよくある間違いは「0や空文字をfalseと誤解」「==の型変換による誤判定」など

実際にコードを動かしながらtruthy/falsyの挙動を理解し、条件文を正しく書けるようになりましょう!

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Javascript