用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。