为什么两个示例的输出对Javascript布尔值不同?



eg1:

 var boo = new Boolean(false)
 document.write(boo.valueOf())//false

eg2:

 var boo1 = new Boolean(new Boolean(false))
 document.write(boo1.valueOf())//true

为什么两个示例的输出不同?

顺便说一句:

console.log((new Boolean( new Boolean(false))))//nothing
document.write(new Boolean( new Boolean(false)))//true

为什么控制台中没有什么?

对象是真实的,当您使用 new Boolean时,您正在调用boolean 构造函数,该构建器返回对象。当调用new Boolean具有真实值时,它会导致其值为true的对象。因此,new Boolean(new Boolean(<anything>))将导致一个值为true的布尔值。

但只是不这样做 - 改用文字布尔或Boolean(condition)

最新更新