2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【JavaScript】truthyな値とfalsyな値について

2
Last updated at Posted at 2026-09-09

はじめに

JavaScriptのtruthyな値とfalsyな値について曖昧な部分があったのでまとめます。

truthyな値とfalsyな値

JavaScriptには値そのものが真偽値に変換されるルールがあります。
具体的には、if文などの条件式で「false(偽)」と判定されるのがfalsyな値で「true(真)」と判定されるのがtruthyな値です。

 
説明
false 論理値のfalse
0 数値の0
-0 数値のマイナス0
0n BigInt
""(空文字) 空の文字列
null 存在しない値
undefined 未定義
NaN 数値ではない値

もっと詳しく知りたい方は以下参照。

間違いやすいパターン

負の値の真偽値

// -0はfalseになる
if(-0) {
  console.log("true");
} else {
  console.log("false");
}
// -1はtrueになる
if(-1) {
  console.log("true");
} else {
  console.log("false");
}

負の値は0かそれ以外でtrue/falseが変わります。
-1はtrueですが-0はfalseになります。0だけ扱いが違います。
負の値と聞くとfalseになりそうですが惑わされてはいけません。

文字列"0"の真偽値

// 文字列"0"はtrueになる
if("0") {
  console.log("true");
} else {
  console.log("false");
}

falseになるのは数値の0であって、文字列"0"は空の文字列ではないのでtrueになります。
「0だからfalseになる」という覚え方をしているとハマるので注意。

空の配列/オブジェクトの真偽値

// 空の配列はtrueになる
if([]) {
  console.log("true");
} else {
  console.log("false");
}
// 空のオブジェクトはtrueになる
if({}) {
  console.log("true");
} else {
  console.log("false");
}

空だとfalseになると思いがちですが、空の配列と空のオブジェクトはtrueになります。

おわりに

基本的には8つしかないfalsyな値を覚えてしまえば問題無さそう。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?