今天,在阅读有关JavaScript的博客时,我遇到了以下示例,这对我来说似乎很奇怪。请澄清。
根据我的JavaScript知识!!"0"
结果true
但是,下面的语句结果对我来说似乎很奇怪,甚至我在也返回了true
的控制台中执行了它
false == "0" //results true
我对此声明的解释如下
"0"
被视为true
,因此上述声明可以重写为false == true
,其结果必须为false
,但我得到的是{{1} } 结果。请澄清。
答案 0 :(得分:3)
使用==
时,首先将"0"
强制转换为其数字值0
。还有0 == false
。
执行!!"0"
时,它不会被强制转换,只是将字符串转换为布尔值,并且由于任何非空字符串都是真实的,因此它等于true
。