字符串版本" false"不等于真或假

时间:2018-06-10 15:27:36

标签: javascript

false "false"字符串不是truefalse

"false" == true // false

"false" == false // false

这怎么可能?这不适用于"true"。上述结果在chrome控制台面板中执行。

修改

如果上面没有评估为true,那么为什么bellow语句打印hello:

if("false") console.log("hello")

EDIT2

在链接的副本中,它表示"false"已转换为NaN。让我们在chrome shell中测试一下:

if(NaN) console.log("hello")

if("false") console.log("hello")
// prints hello

但奇怪的是isNaN("false")返回true。

2 个答案:

答案 0 :(得分:1)

空字符串是假的,每个非空字符串都是真的。

"true"未被强制转移到true,它只是一个非空字符串示例。

“0”是真实的(if ("0") { true } == true)。但也"0" == false。这是因为==强制数字参数,"0"变为0,false变为0。

一般情况下,不要在JS中使用==运算符。请改用===。如果你想使用其他价值的真实性或虚假性,请注意:)

答案 1 :(得分:0)

这也适用于“真实”。这里“false”和“true”与javascript中的任何其他字符串值相同,它没有任何布尔值true或false值。因此,

"true" == true is false
"true" == false is false
"false" == true is false
"false" == false is false