<script type="text/javascript"> function test(){ //1)纯数字之间比较 //alert(1<3);//true //2)数字字符串比较,会将其先转成数字 //alert("1"<"3");//true //alert("123"<"123");//false //3)纯字符串比较,先转成ascii码 //alert("a"<"b");//true //alert("abc"<"aad");//false,多纯字母比较,会依次比较ascii码 //4)汉字比较 //alert("我".charCodeAt());//25105 //alert("的".charCodeAt());//30340 //alert("我"<"的");//true,汉字比较,转成ascii码 //5)当数字和字符串比较,且字符串为数字。则将数字字符串转为数字 //alert(123<"124");//true,下面一句代码得出124的ascii码为49,所以并不是转成ascii比较 //alert("124".charCodeAt());//49 //6)当数字和字符串比较,且字符串为非纯数字时,则将非数字字符串转成数字的时候会转换为NaN,当NaN和数字比较时不论大小都返回false. alert(13>"abc");//false } </script>
之前看到JavaScript数字字符串比较的文章内容为以上,但是在我自己的实践中发现数字字符串比较以上总结不全。实际上数字字符串依然是按照字符串比较的规则进行比较的,从左至右的顺序进行字符比较。
<script type="text/javascript"> function test(){ //1)纯数字之间比较 //alert(1<3);//true //2)数字字符串比较,应先将其先转成数字 //alert("1"<"3");//true //alert("6"<"123");//false //正确的比较方式 var digit1 = parseInt("123"); var digit2 = parseInt("6"); alert(digit1 < digit2); alert(parseInt("123") < parseInt("6")); //3)纯字符串比较,先转成ascii码 //alert("a"<"b");//true //alert("abc"<"aad");//false,多纯字母比较,会依次比较ascii码 //4)汉字比较 //alert("我".charCodeAt());//25105 //alert("的".charCodeAt());//30340 //alert("我"<"的");//true,汉字比较,转成ascii码 //5)当数字和字符串比较,且字符串为数字。则将数字字符串转为数字 //alert(123<"124");//true,下面一句代码得出124的ascii码为49,所以并不是转成ascii比较 //alert("124".charCodeAt());//49 //6)当数字和字符串比较,且字符串为非纯数字时,则将非数字字符串转成数字的时候会转换为NaN,当NaN和数字比较时不论大小都返回false. alert(13>"abc");//false } </script>