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