js數字字符串大小比較

今天做用戶需求的時候,發現js檢驗出錯,我從頁面去了兩個值進行比較大小,原意想比較兩個數值的大小,因爲感覺js是弱數據類型,所以直接進行了比較,類型與:

a= '10000000'        b= '5000000'

a>b輸出false ,如果a-b>0 則輸出true

查閱資料發現,這是JavaScript中隱式轉換的關係,首先在比較的時候,二者是按照string的形式進行比較的,那麼比較第一位的時候,1 < 5,直接返回false,而 a - b會把兩個數轉成number類型進行比較,轉換完之後輸出就是true。

所以一般從頁面上取得值之後,最好使用減法比較,或者對取得的值進行顯式轉換,Number(a)>Number(b).

總結:JavaScript中常用數字字符串比較

1、數字與數字之間直接比較

      比較方式依據數學運算,沒什麼好說的。

2、數字與字符串數字之間直接比較

      例如 數字5 與字符串數字'123',這種比較先將數字字符串轉爲純數字,然後爲純數字間的比較

3、字符串數字與字符串數字之間直接比較

      例如 ‘5’和‘123’比較,這種比較爲ASCII碼比較,依次取每個字符,字符轉爲ASCII碼進行比較:‘5’>'123'  ==>true

4、字符串之間直接比較

      大小比較是依次取字符,字符轉ASCII碼,ASCII碼先大的即爲大;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章