alert(new Boolean(false))vs console.log(new Boolean(false))

时间:2015-05-29 12:22:35

标签: javascript boolean

我想知道为什么alert(new Boolean(false))打印false而不是打印对象,因为new Boolean应该返回对象。如果我使用console.log(new Boolean(false))

,它的工作原理应该有效

3 个答案:

答案 0 :(得分:2)

alert()显示传递给它的参数的.toString()值。

toString()对象的Boolean值为truefalse

答案 1 :(得分:0)

alert()以其原始形式显示其值,因为,Boolean是一种原始数据类型。然后它尝试将其转换为String,并向用户显示输出。

这就是console.log()也正在做的事情,但它更详细地显示了布尔原始值的形式,如下所示: {[[PrimitiveValue]]: false}

任何Primitive值类型都会发生同样的情况。试试new Number(1)

答案 2 :(得分:0)

当布尔值用作构造函数时,它不返回基元,而是返回一个对象,console.log显示该对象。其中,alert使用为对象定义的toString来显示值。