1

可能重复:
为什么 !new Boolean(false) 在 JavaScript 中等于 false?

var b = new Boolean(null);


alert(b instanceof Boolean);

 if(b) {
    alert('cv');
    alert(b.toString());
 }

为什么如果代码块被执行?b 应该是布尔类型并被评估为假吗?

请解释谢谢

4

2 回答 2

2

代码块执行,因为对象存在并且不是未定义的,尽管它当前没有值。javascript中布尔对象的要点是将非布尔对象转换为“真”或“假”值。

如果你有

if( b.valueOf() );

这将评估对象的实际价值。

于 2013-01-11T22:35:36.740 回答
1

所有objects 都是真实的,除了null。因此,即使你写new Boolean(false)得很具体,它仍然是真实的。

这就是你从不写作的原因new Boolean。要转换为布尔值,只需使用!!

于 2013-01-11T22:32:29.357 回答