JavaScript 其他值到布尔值的转换规则是什么?
2026/6/23 3:48:05 网站建设 项目流程

在 JavaScript 中,其他值到布尔值的转换遵循以下规则:

1.Falsy 值(转换为false的值)

以下 6 个值在布尔上下文中会被转换为false

  • falsefalse
  • 0-0以及0n(BigInt) →false
  • ""(空字符串) →false
  • nullfalse
  • undefinedfalse
  • NaNfalse

2.Truthy 值(转换为true的值)

除了上述 6 个 Falsy 值之外的所有值都会转换为true

  • 非空字符串:"0"" "(空格)、"false"true
  • 非零数字:-11Infinitytrue
  • 对象(包括空对象、空数组):{}[]function(){}true
  • SymbolSymbol()true
  • BigInt非零值:1ntrue

转换方式

隐式转换(在条件语句中)

if(value){// value 为 truthy 时执行}if(!value){// value 为 falsy 时执行}value&&other;// 逻辑与value||other;// 逻辑或value?a:b;// 三元运算符

显式转换

Boolean(value)// Boolean() 函数!!value// 双重取反

常见示例

Boolean(0)// falseBoolean(1)// trueBoolean("")// falseBoolean("hello")// trueBoolean(null)// falseBoolean(undefined)// falseBoolean(NaN)// falseBoolean({})// trueBoolean([])// trueBoolean([0])// true(数组本身是对象)Boolean(false)// falseBoolean(true)// trueBoolean("0")// true(非空字符串)Boolean(" ")// true(空格也是非空字符串)Boolean(0n)// false(BigInt 零)Boolean(1n)// true

注意事项

  • 空数组[]是 truthy,但[] == falsetrue(因为[]转为数字是0
  • 空对象{}是 truthy
  • 字符串"0""false"是 truthy(因为它们是非空字符串)
  • 在条件判断中,只有那 6 个 Falsy 值会返回false,其他所有值都是true

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询