做項目,遇到一個讓人非常糾結的問題,就是獲取的兩個值比較,卻出現了一位數比二位數大的情況。
剛開始還以為哪里寫錯了,檢查了幾遍,用ie調了下,意識到是應該是用錯了比較方法了。才想起以前也碰到過這種情況的,究其原因,就是js默認比較字符串,先比較兩個的第一個字符,相同再比較第二個,以此類推。
所以,對於數字的比較,首先要轉換為數字,再進行比較,就不會出錯了。
js中數值比較,如下所示:
var id=document.pageaction.pageNow.value;-->4 var count=document.pageaction.count.value;-->30 alert(id>count);//結果是true
alert結果為true,因為js默認比較字符串,先比較兩個的第一個字符,相同再比較第二個,以此類推
解決方式:
使用parseInt(id)進行整型轉換:
alert(parseInt(id)>parseInt(count));//結果是false alert(eval_r(id)>eval_r(count)); //eval()函數用於在不引用任何特定對象的情況下計算代碼字符串。