Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Javascript中true和false可以是字符串_Javascript - Fatal编程技术网

为什么在Javascript中true和false可以是字符串

为什么在Javascript中true和false可以是字符串,javascript,Javascript,与许多编程语言不同,Javascript中的true和false可以是'true'和'false' 为什么它们可以是字符串?它们不是字符串true和false也作为基本布尔类型存在 可以将字符串转换为布尔值 如图所示: 您只能获得一个true输出,因为它是非空字符串,所以它是true,但布尔值与字符串不同 当字符串为'false'时,转换为布尔值也会返回true,因为如上所述,它不是空的。否,它们不是空的。你为什么这么认为?typeof true==“boolean”,typeof'true'

与许多编程语言不同,Javascript中的
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'
>