數字0和字符串類型的0的區別(坑位)


案例:限制本周接單金額為必填且不能小於0

 

1.數字0

vm.receiptMoney = 0

console.log(typeof vm.receiptMoney)//number
console.log(!vm.receiptMoney)//true
console.log((parseFloat(vm.receiptMoney)<0))//false
if(!vm.receiptMoney||(parseFloat(vm.receiptMoney)<0)){
    Message({message: '本周接單金額為必填項,且不能小於0!',type: 'warning'});
    return false;
}
2.字符串類型的0
vm.receiptMoney = 0

console.log(typeof vm.receiptMoney)//string
console.log(!vm.receiptMoney)//false
console.log((parseFloat(vm.receiptMoney)<0))//false
if(!vm.receiptMoney||(parseFloat(vm.receiptMoney)<0)){
    Message({message: '本周接單金額為必填項,且不能小於0!',type: 'warning'});
    return false;
}

 比較:Number類型的0,取反時就說true; String類型的0,取反時就說false;顯然1中數字0中並不是想要的結果,而編輯單據的時候,后台返回的是一個Number類型的0

    導致Number類型的0判斷成未填寫狀態,出現判斷出錯,

    而重新編輯成0就不會出現錯誤,因為編輯后的0是String類型的0;如果不編輯就是默認后台傳過來的Number類型的0,導致出現判斷錯誤

 處理:先將后台返回回來的Number類型的0轉成String類型的0,即:vm.receiptMoney = resData.receiptMoney  +  ' '


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM