JavaScript 面试题
目录

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

· 约 3 分钟读完 · 第 306 / 507 章

推荐答案

在 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 中布尔类型的转换规则。