javascript中boolean()函数将值转为布尔型,仅false、0、''、null、undefined、nan返回false,其余均返回true;!!与boolean()等价但更简洁;注意对象、非空字符串等真值易误判。

JavaScript 中 Boolean() 函数用于将任意值显式转换为布尔类型,它遵循“真值(truthy)”和“假值(falsy)”的规则,返回 true 或 false。
哪些值会被转成 false
以下 6 个值调用 Boolean() 时返回 false,它们是 JavaScript 中唯一的假值:
false-
0(数字零,包括-0和+0) -
''(空字符串) nullundefinedNaN
例如:Boolean(0) → falseBoolean('') → falseBoolean(null) → false
其他所有值都转成 true
除了上述 6 种假值,其余值均为真值,Boolean() 都返回 true:
- 非空字符串(哪怕只有空格:
' '、'0'、'false') - 非零数字(
1、-5、Infinity) - 对象(包括空对象
{}、空数组[]、正则表达式/./) - 函数(
function(){}) -
new Boolean(false)(包装对象,本身是对象,所以为true)
例如:Boolean('0') → trueBoolean([]) → trueBoolean({}) → true
与双感叹号(!!)的区别
Boolean(x) 和 !!x 功能完全等价,都是显式转布尔值。但 !! 更简洁,常用于条件判断中快速取布尔结果:
-
Boolean('hello') === !!'hello'→true -
Boolean(0) === !!0→true
二者都严格按 falsy/truthy 规则转换,没有行为差异。
常见误区提醒
注意这些容易误判的情况:
-
Boolean(new Boolean(false))返回true—— 因为是对象,不是原始false -
Boolean('false')返回true—— 字符串非空,不解析内容 -
Boolean({a: 0})返回true—— 空/非空对象不影响,对象总是 truthy - 不要依赖
Boolean()做类型校验(如判断是否为数字),它只反映“真假”,不反映“类型”
需要判断具体类型,请配合 typeof 或 Number.isFinite() 等方法使用。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











