JavaScript 中布尔类型的转换规则是什么?

推荐答案

在 JavaScript 中,布尔类型的转换规则遵循以下原则:

  1. 假值(Falsy):以下值在布尔上下文中会被转换为 false

    • false
    • 0
    • ""(空字符串)
    • null
    • undefined
    • NaN
  2. 真值(Truthy):除了上述假值之外的所有值,在布尔上下文中都会被转换为 true。包括:

    • true
    • 非零数字(包括负数)
    • 非空字符串
    • 对象(包括空对象 {} 和数组 []
    • 函数

本题详细解读

1. 假值(Falsy)

在 JavaScript 中,假值是指在布尔上下文中会被转换为 false 的值。常见的假值包括:

  • false:布尔值 false 本身就是一个假值。
  • 0:数字 0 在布尔上下文中会被视为 false
  • "":空字符串(即长度为 0 的字符串)会被视为 false
  • null:表示空值或无值的 null 会被视为 false
  • undefined:表示未定义的值 undefined 会被视为 false
  • NaN:表示“非数字”的 NaN 会被视为 false

2. 真值(Truthy)

真值是指在布尔上下文中会被转换为 true 的值。除了上述假值之外的所有值都是真值,包括:

  • true:布尔值 true 本身就是一个真值。
  • 非零数字:任何非零的数字(包括负数)都会被转换为 true
  • 非空字符串:任何非空字符串(即使只包含空格)都会被转换为 true
  • 对象:任何对象(包括空对象 {} 和空数组 [])都会被转换为 true
  • 函数:任何函数都会被转换为 true

3. 示例

-- -------------------- ---- -------
---------------------------- -- -----
------------------------ -- -----
------------------------- -- -----
--------------------------- -- -----
-------------------------------- -- -----
-------------------------- -- -----

--------------------------- -- ----
------------------------ -- ----
------------------------------ -- ----
------------------------- -- ----
------------------------- -- ----
------------------------------ ----- -- ----

通过这些示例,可以清楚地看到 JavaScript 中布尔类型的转换规则。

纠错
反馈