用javascript做验证的时候发现了一个问题
空串不大于0,可是空串大于等于0,即 alert("">0)为false,而alert("">=0)为true
(javascript中有时是把0,空串和false混用的 这句说的欠妥,多谢评论)
alert("">0); //false alert("">=0);//true alert(""<0);//false alert(""<=0);//true alert("">false); //false alert("">=false);//true alert(""<false); //false alert(""<=false);//true alert(0>false);//false alert(0<false);//false alert(0==false);//true //空串也是0吗? alert(1>"");//true alert(1<"")//false //false 也是0 alert(1>false);//true alert(1<false);//false //总而言之就是 alert(""==0);//true alert(""==false);//true alert(""===0); //false alert(""===false);//false
1 楼
Copperfield
2011-01-24
这不是混用的问题,其中包含了一个运算的规则:相等运算符判断时,其中一个是true,先转换成1(false则转换为0)再做比较。
"" == false,现将false转化为0,即:判断"" == 0。空串转换成数字0,0==0,所以
alert("" == false)显示的是true。
"" == false,现将false转化为0,即:判断"" == 0。空串转换成数字0,0==0,所以
alert("" == false)显示的是true。