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
为什么控制台里什么都没有?
答案 0 :(得分:4)
对象很简洁,当你使用new Boolean
时,你会调用布尔构造函数,它会返回一个对象。当使用truthy值调用new Boolean
时,会生成一个值为true
的对象。因此,new Boolean(new Boolean(<anything>))
将生成一个值为true
的布尔值。
但是不要这样做 - 使用字面布尔值或Boolean(condition)
代替。