小议 js 下字符串比较大小


之前群里有人问如何比较两个时间大小,他的时间格式是 2014-08-08 而不是 2014-8-8。
所以我给的方法是 直接比较,如:

var a = "2014-08-08"; var b = "2014-09-09"; console.log(a>b, a<b); // false true

很方便不是么,但是原理是什么呢?

打开 ECMA 第 11.8.5 节 The Abstract Relational Comparison Algorithm
在 4. Else, both px and py are Strings 处可以看到字符串比较的情况。

或者翻开 V8 简单看下,在 COMPARE 处,

全文:http://www.cnblogs.com/52cik/p/js-string-comparison.html

 

附上:

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

  全文:http://www.cnblogs.com/icerainsoft/p/3448161.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM