Javascript

【保存版】もう迷わない!Javascriptのtrue(真)/false(偽)具体例一覧

はじめに

みなさんはjavascriptでif文を書く時にどの値が true または false になるか覚えていますか?

Vue.jsやReact、Nuxt.jsやNext.jsなどJSフレームワークが出てきてJavascriptが簡単に使える世の中になった一方で、純粋なJavascript(Vanilla JSと言ったりもします)の知識を知らずにJSフレームワークを使われている場面が多い気がします。

そこでこの記事では、Javascriptでif文などの条件判定部分について、どういった値がtrue または false になるのかご紹介します。

truthy / falsyってきいたことある?

一言でいうと、if文など論理型コンテキスト判定
true になるものを truthyfalseになるものを falsyと言います。

(とはいっても開発の現場で truthyfalsy という言葉を聞くことはほぼありません。笑)

Javascriptでの true / false 具体例一覧

ではどんな値がJavascriptで true または false となるのかその理由も一緒に見ていきましょう。

trueと判定されるもの(truthy)

  • if (true)    // boolean型はtrueならtrue
  • if ({})     // オブジェクトはすべてtrue
  • if (new Date()) // Dateオブジェクトすなわちオブジェクト型のためtrue
  • if ([])     // 配列はすべてtrue
  • if ("0")    // 空文字列以外はすべてtrue
  • if ("false")   // 空文字列以外はすべてtrue
  • if (-42)    // 非ゼロの数値はtrue
  • if (12n)    // 非ゼロの数値はtrue
  • if (3.14)    // 非ゼロの数値はtrue
  • if (-3.14)   // 非ゼロの数値はtrue
  • if (Infinity)   // 非ゼロの数値はtrue
  • if (-Infinity)   // 非ゼロの数値はtrue

falseと判定されるもの(falsy)

  • if (false)     // boolean型はfalseならfalse
  • if (null)     // nullはfalse
  • if (undefined)  // undefinedはfalse
  • if (0)      // ゼロの数値はfalse
  • if (-0)     // ゼロの数値はfalse
  • if (0n)     // ゼロの数値はfalse
  • if (NaN)     // JavaScriptにおける特殊な値であり、これは数値としては無効であるためfalse
  • if ("")      // 空文字列はfalse

はい、いかがだったでしょうか?

思った通りというものもあれば、空のオブジェクトや空の配列がfalseじゃないなんて、、!
以外だったものもあるかもしれません。

まとめ

まとめるとJavascriptでのtruthy, falsyの判定ルールは以下となっているようです。

Javascriptでtrueとなるもの

  • 非ゼロの数値
  • 非空文字列
  • オブジェクト(空でも)
  • 配列(空でも)
  • 関数
  • boolean型のtrue

Javascriptでfalseとなるもの

  • 0
  • NaN(Not a Number)
  • 空文字列
  • undefined
  • null
  • boolean型のfalse

JSフレームワークを使うときに、おろそかになりがちな基礎の部分なので
ぜひ振り返り用にときどき確認してもらえればと思います。

-Javascript
-, , , ,