在JavaScript中,字符“0”等于false,因为“0”是字符串类型。当在if条件下测试相等时,JavaScript的自动类型转换生效,并将字符“0”转换为其数字值0,我们知道0代表值false;所以,字符“0”等于false。
示例:此示例说明了为什么字符“0”等于false
<script>
function Demo() {
//输出"0"的类型
document.write(typeof "0" + "</br>");
// 如果"0"==false,即,false==false,返回true。
var result = ("0" == false);
// 输出结果
document.write(result + "</br>");
// 将"0"转换并输出为其数值
document.write(Number("0") + "</br>");
// 将布尔值false转换并输出为其数值
document.write(Number(false) + "</br>");
// 因此,两个数值相同,因此条件“0”==false的计算结果为true。
document.write("0" == false);
document.write("</br>");
// 或者可以这样
document.write(Number("0") == Number(false));
}
Demo();
</script>
输出:
string
true
0
0
true
true
因此,从上面的示例中可以清楚地看到,“0”等于“false”,并且这种行为背后的原因也很清楚了。当在if条件下测试相等时,它的计算结果就是“true”。
推荐阅读: