如題,js不是弱類型語言么,字符串相減不應該自動轉換為數字類型運算么
為什么js里"10000"<"8000"為true
慕的地8271018
2018-11-16 08:19:49
TA貢獻1851條經驗 獲得超3個贊
如果兩個數字型的字符串相減,或者其中一個為字符串時,那么會自動轉換為數字類型的進行運算:
'10000' - '8000' // 2000 10000 - '8000' // 2000 10000 > '8000' // true
但如果是兩個都是數字型的字符串進行比較,那就不會自動轉換為數字類型,會按照純字符串的比較規則進行比較:
從字符串左邊開始,一次比較每個字符(比較每個字符對應的ASCII值),直接出現差異、或者其中一個串結束為止
比如 '10000' 和 '8000' 這兩個字符串比較, 字符'8'對應的ASCII值比字符'1'對應的ASCII值要大,則比較直接結束,最后的結果則是'8000'>'10000'
舉報