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

最近在項目中遇到一個低級錯誤,特此記下來提醒自己不再重犯。
項目情景:
後臺會返回一個當前修改次數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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章