1. 原因
因为JavaScript是一种弱类型的语言,而在判断''==0
时,因为两边的类型不一致,所以在进行判断时,会将两边转换成boolean类型后,再进行判断。因为空字符转换成boolean类型就是false,而0转换成boolean类型也是false。所以就会出现false==false
等于true
的结果。
2. 测试
简单demo测试:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
if(''==0){
alert("第一个结果是true");
}
if(''=='0'){
alert("第二个结果是true");
}
</script>
</head>
<body>
</body>
</html>
得到的结果只有第一个为true
。所以我们的要比较空字符和0,且要得到结果为false。我们可以使用 '' === 0
,改表达式会先进行状态判断,如果为不同类型,则为false。