JavaScriptにおける`truthy`と`falsy`
この記事ではJavaScriptにおけるtruthy
とfalsy
について説明します。
YouTube Video
JavaScriptにおけるtruthy
とfalsy
JavaScriptにおけるtruthy
とfalsy
の概念は、特に条件式での評価において非常に重要な役割を果たします。truthy
とfalsy
は、値が真(true
)または偽(false
)として評価されるかどうかを決定しますが、これらの値は必ずしもブール型のtrue
やfalse
そのものではありません。
falsy
の値
falsy
の値は、JavaScriptの条件式においてfalse
として評価される値を指します。以下は、JavaScriptにおけるfalsy
な値のリストです。
1const values = [
2 false,
3 0,
4 -0,
5 0.0,
6 -0.0,
7 0n,
8 -0n,
9 "",
10 null,
11 undefined,
12 NaN
13];
14
15for (let value of values) {
16 if (value) {
17 console.log(`${value} is truthy`);
18 } else {
19 console.log(`${value} is falsy`);
20 }
21}
この例では、falsy
な値はすべて「falsy」として出力されます。以下は、JavaScriptにおけるfalsy
な値のリストです。
false
— ブール型のfalse
0
— 数値のゼロ(小数の0.0
も同様にfalsy
です)-0
— 負のゼロ(技術的には0
と区別されますが、同様にfalsy
です)0n
— BigInt型のゼロ""
— 長さ0の空文字列null
— 値が存在しないundefined
— 未定義の値NaN
— 数値でない値
これらの値は、論理演算や条件分岐(if
文など)でfalse
として扱われます。
truthy
の値
falsy
でない値はすべてtruthy
です。これは、ブール型のtrue
として評価される値を指します。JavaScriptでは、多くの値がtruthy
として扱われます。
1const values = [
2 true,
3 1,
4 -1,
5 "Hello",
6 " ",
7 [],
8 {},
9 function() {},
10 Symbol(),
11 Infinity
12];
13
14for (let value of values) {
15 if (value) {
16 console.log(value, ' is truthy');
17 } else {
18 console.log(value, ' is falsy');
19 }
20}
このコードでは、truthy
な値が「truthy」として出力されます。例えば、次のような値がtruthy
です。
true
— ブール型のtrue
- 数値(0以外) — 例えば
1
や-1
もtruthy
です。 - 文字列(空でないもの) — 例えば
"Hello"
や" "
(空白のみの文字列でもtruthy
です) - オブジェクト — 空のオブジェクト(
{}
)や配列([]
)もtruthy
です。 - 関数 — 関数自体も
truthy
です。 Symbol
—Symbol
型の値もtruthy
です。Infinity
— 正および負の無限大もtruthy
です。
truthy
とfalsy
の応用
truthy
やfalsy
の概念は、条件式や論理演算でしばしば使用されます。例えば、||
(論理OR)演算子を使ってデフォルト値を設定する場合、最初のtruthy
な値が結果として返されます。
falsy
な値の確認方法
falsy
な値を確認するには、Boolean
関数を使うと便利です。Boolean
関数は、与えられた値を明示的にブール型に変換します。
Boolean
関数の例
1const values = [
2 false,
3 0,
4 "",
5 null,
6 undefined,
7 NaN
8];
9
10for (let value of values) {
11 console.log(`${value} is ${Boolean(value) ? 'truthy' : 'falsy'}`);
12}
結論
JavaScriptにおけるtruthy
とfalsy
は、ブール型ではない値を条件式でどのように評価するかを理解するために重要です。falsy
な値にはfalse
、0
、空文字列、null
、undefined
、NaN
などがありますが、それ以外の値はすべてtruthy
として評価されます。これらの概念を理解することで、より柔軟で効率的なコードを書くことができるようになります。
YouTubeチャンネルでは、Visual Studio Codeを用いて上記の記事を見ながら確認できます。 ぜひYouTubeチャンネルもご覧ください。