1. 程式人生 > >解決比較數值時候出現的異常

解決比較數值時候出現的異常

最近在專案中遇到一個低階錯誤,特此記下來提醒自己不再重犯。
專案情景:
後臺會返回一個當前修改次數curAsNum與上限修改次數asNum,當curAsNum等於或大於asNum時彈窗提醒使用者無法再次修改,已抵達上限。
而我最初是這樣做的:

if(curAsNum >= asNum){
   myAlert('該流程修改次數已經達到系統設定的限制');
}else{
    _overlay.show();
    $('#assign-box').show();
    saveCharge(flow_id);//儲存按鈕
}

但是,curAsNum為17,asNum為3,在判斷時候卻為false

//            console.log(curAsNum);//17
//            console.log(asNum);//3
//            console.log(curAsNum >= asNum);//false

原因:後臺人員傳遞過來的兩個引數其實是字串型,所以在比較的時候應該轉換為整型計算
如下:

console.log(parseInt(curAsNum) > parseInt(asNum));//true

簡單測試:

var a = '17',b='3';console.log(a>b);false
var a = 17,b = 3
;console.log(a>b);true var a = '17',b='3';console.log(parseInt(a) > parseInt(b));true