则成の随笔

记录一点日常和工作的收获

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
<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>                

 

  

 

posted on 2017-03-15 10:14  江则成  阅读(2900)  评论(1编辑  收藏  举报