我想知道为什么alert(new Boolean(false))
打印false而不是打印对象,因为new Boolean应该返回对象。如果我使用console.log(new Boolean(false))
答案 0 :(得分:2)
alert()
显示传递给它的参数的.toString()
值。
toString()
对象的Boolean
值为true
或false
。
答案 1 :(得分:0)
alert()
以其原始形式显示其值,因为,Boolean是一种原始数据类型。然后它尝试将其转换为String,并向用户显示输出。
这就是console.log()
也正在做的事情,但它更详细地显示了布尔原始值的形式,如下所示:
{[[PrimitiveValue]]: false}
任何Primitive值类型都会发生同样的情况。试试new Number(1)
。
答案 2 :(得分:0)
当布尔值用作构造函数时,它不返回基元,而是返回一个对象,console.log显示该对象。其中,alert使用为对象定义的toString来显示值。