解決比較數值時候出現的異常
阿新 • • 發佈:2019-02-13
最近在專案中遇到一個低階錯誤,特此記下來提醒自己不再重犯。
專案情景:
後臺會返回一個當前修改次數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