JavaScript中的`真值`和`假值`

JavaScript中的`真值`和`假值`

本文解释了JavaScript中的truthyfalsy

YouTube Video

JavaScript中的真值假值

JavaScript中的真值假值概念非常重要,特别是在条件语句的评估中。真值假值决定了一个值是被评估为true(真)还是false(假),但这些值本身不一定是布尔值truefalse

假值

假值是指在JavaScript条件语句中被评估为false的值。以下是JavaScript中的假值列表。

 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"。以下是JavaScript中的假值列表。

  • false — 布尔类型中的false
  • 0 — 数字零(十进制0.0也是假值
  • -0 — 负零(技术上与0不同,但仍然是假值
  • 0n — BigInt类型中的零
  • "" — 长度为0的空字符串
  • null — 表示没有值
  • undefined — 未定义的值
  • NaN — 不是数字

在逻辑操作和条件语句(如if语句)中,这些值被视为false

真值

所有不是假值的值都是真值。这指的是被评估为布尔值true的值。在JavaScript中,许多值被视为真值

 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 也是“真值”。
  • 字符串(非空)— 例如,"Hello"" "(即使是只有空格的字符串也是 truthy
  • 对象 — 即使是空对象({})和数组([])也是“真值”。
  • 函数 — 函数本身也属于“真值”。
  • Symbol — 类型为 Symbol 的值也是 truthy
  • “Infinity” — 正无穷和负无穷都属于“真值”。

truthyfalsy 的应用

truthyfalsy 的概念通常用于条件表达式和逻辑操作中。例如,在使用 ||(逻辑或)运算符设置默认值时,第一个 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 中,truthyfalsy 对理解非布尔值在条件表达式中的评估方式非常重要。falsy 值包括 false0、空字符串、nullundefinedNaN,而其他所有值都被评估为 truthy。理解这些概念可以帮助你编写更灵活、高效的代码。

您可以在我们的YouTube频道上使用Visual Studio Code跟随上述文章进行学习。 请也查看我们的YouTube频道。

YouTube Video