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— 布林類型中的false0— 數字零(十進制的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。 Symbol— 類型為Symbol的值也是「真值」。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 頻道。