Javascript布尔类型

时间:2013-01-11 22:31:27

标签: javascript

  

可能重复:
  Why does !new Boolean(false) equals false in JavaScript?

var b = new Boolean(null);


alert(b instanceof Boolean);

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

为什么要执行代码块? b应该是一个布尔类型并评估为false吗?

请解释谢谢

2 个答案:

答案 0 :(得分:2)

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

如果你有

if( b.valueOf() );

将评估对象的实际值。

答案 1 :(得分:1)

object外,所有null都是真实的。因此,即使你专门写new Boolean(false),它仍然是真的。

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