false "false"
字符串不是true
或false
:
"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。
答案 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