【发布时间】:2015-05-29 12:22:34
【问题描述】:
我想知道为什么alert(new Boolean(false)) 打印 false 而不是打印对象,因为 new Boolean 应该返回对象。如果我使用console.log(new Boolean(false))
【问题讨论】:
-
alert需要一个字符串,因此它将您的布尔值转换为字符串。这里没有什么奇怪的,按预期工作。
标签: javascript boolean
我想知道为什么alert(new Boolean(false)) 打印 false 而不是打印对象,因为 new Boolean 应该返回对象。如果我使用console.log(new Boolean(false))
【问题讨论】:
alert 需要一个字符串,因此它将您的布尔值转换为字符串。这里没有什么奇怪的,按预期工作。
标签: javascript boolean
alert() 显示传递给它的参数的 .toString() 值。
Boolean 对象的toString() 值为true 或false。
【讨论】:
console.log(Boolean("false")); 它抛出 true 作为输出为什么会这样?
Boolean() 函数会将任何非空字符串转换为true 并将空字符串转换为false:Boolean('false') === true、Boolean('hello') === true、Boolean('') === false。
consol.log(Boolean(0)) 也将返回 false 可能是因为布尔值为 false =0 而 true =1。
alert() 以其原始形式显示其值,因为 Boolean 是原始数据类型。然后它尝试将其转换为字符串并将输出显示给用户。
console.log() 也在做这件事,但它以如下布尔原始值的形式显示得更详细一点:
{[[PrimitiveValue]]: false}
任何原始值类型都会发生同样的情况。试试new Number(1)。
【讨论】:
当 Boolean 被用作构造函数时,它不返回原始值,而是返回一个对象,console.log 显示该对象。其中,警报使用为对象定义的 toString 来显示值。
【讨论】: