为什么在Javascript中true和false可以是字符串
与许多编程语言不同,Javascript中的为什么在Javascript中true和false可以是字符串,javascript,Javascript,与许多编程语言不同,Javascript中的true和false可以是'true'和'false' 为什么它们可以是字符串?它们不是字符串true和false也作为基本布尔类型存在 可以将字符串转换为布尔值 如图所示: 您只能获得一个true输出,因为它是非空字符串,所以它是true,但布尔值与字符串不同 当字符串为'false'时,转换为布尔值也会返回true,因为如上所述,它不是空的。否,它们不是空的。你为什么这么认为?typeof true==“boolean”,typeof'true'
true
和false
可以是'true'
和'false'
为什么它们可以是字符串?它们不是字符串
true
和false
也作为基本布尔类型存在
可以将字符串转换为布尔值
如图所示:
您只能获得一个true输出,因为它是非空字符串,所以它是true,但布尔值与字符串不同
当字符串为
'false'
时,转换为布尔值也会返回true,因为如上所述,它不是空的。否,它们不是空的。你为什么这么认为?typeof true==“boolean”
,typeof'true'==“string”
??另外,“false”是true
(就像任何非空字符串一样)。@RussellZahniser:显然是“false”!==是否正确
?可能Boolean('false')
是true
。@Bergi:No,但它在布尔上下文中转换为true
,因此if('false')
将为true。@RussellZahniser:Yes。在布尔上下文中,字符串'false'
是真实的。您的第一条注释遗漏了:-)请将typeof
用作运算符,而不是函数。
$ node
> typeof(true) 'boolean'
> typeof(false) 'boolean'
>