布尔值在算术运算中恒转为数字:true→1,false→0;但与字符串用+时转为字符串拼接;一元±号也触发数字转换;该规则独立于其他假值/真值行为。

布尔值在数学运算中会自动转成数字:true 变成 1,false 变成 0。
加减乘除等算术运算中的转换
只要布尔值出现在 -、*、/、% 等算术运算中,JS 就会先把它转为数字再计算。
-
true + 5→1 + 5→6 -
false * 10→0 * 10→0 -
true - false→1 - 0→1 -
2 ** true→2 ** 1→2(幂运算也适用)
一元正负号运算符的处理
单独的 + 或 - 也会触发转换:
-
+true→1 -
-false→-0(即 0) -
+false→0 -
typeof +true→"number"
和字符串混合时的例外
如果布尔值和字符串一起用 + 运算,就不是转数字,而是转字符串:
-
true + "hello"→"truehello"(true → "true") -
false + 123→"false123"(false → "false") - 此时 + 被识别为拼接操作,优先级高于数值计算
和其他假值/真值对比
注意布尔值的转换规则是独立且固定的,不依赖于其他 falsy/truthy 值的行为:
-
null在算术中变成0,但Boolean(null)是false -
undefined在算术中变成NaN,而Boolean(undefined)也是false - 只有
true和false明确对应1和0,这个映射关系在所有算术上下文中都一致











