JavaScript中的`truthy`和`falsy`

JavaScript中的`truthy`和`falsy`

本文解釋了 JavaScript 中的 truthyfalsy

YouTube Video

JavaScript中的truthyfalsy

JavaScript中的truthyfalsy概念具有非常重要的作用,特別是在條件語句的判斷中。truthyfalsy確定了一個值是否被評估為真(true)或假(false),但這些值不一定是布林值truefalse本身。

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
  • 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)包括 false0、空字串、nullundefinedNaN,而其他所有值都會被視為「真值」(truthy)。了解這些概念能讓你撰寫更靈活且高效的程式碼。

您可以在我們的 YouTube 頻道上使用 Visual Studio Code 來跟隨上述文章一起學習。 請也查看我們的 YouTube 頻道。

YouTube Video