可能重复:
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吗?
请解释谢谢
答案 0 :(得分:2)
代码块执行,因为该对象存在且未定义,尽管它当前没有值。 javascript中Boolean对象的要点是将非布尔对象转换为“true”或“false”值。
如果你有
if( b.valueOf() );
将评估对象的实际值。
答案 1 :(得分:1)
除object
外,所有null
都是真实的。因此,即使你专门写new Boolean(false)
,它仍然是真的。
这就是你永远不会写new Boolean
的原因。要转换为布尔值,只需使用!!