我以這種方式驗證我的時間
if (
timeInMins != 0 &&
timeInMins != "0" &&
timeInMins != undefined &&
timeInMins != "undefined" &&
timeInMins != null &&
timeInMins != "" &&
!isNaN(timeInMins)
) {
timeInMinsCumulative = parseFloat(timeInMins);
}
有沒有辦法讓這個丑陋的 if-check 變成復雜的代碼?
uj5u.com熱心網友回復:
javascript 中有 6 個假值:undefined, null, NaN, 0, ""(空字串),false當然還有。
所以,你可以寫
if (timeInMins && timeInMin !== '0') {
timeInMinsCumulative = parseFloat(timeInMins);
}
uj5u.com熱心網友回復:
這使用 JavaScript 的強制行為和邏輯 AND 運算子來簡化您的代碼。以下代碼幾乎等同于您的代碼,但它也會防止引數false和0n.
if (timeInMins &&
timeInMins !== '0' &&
timeInMins !== 'undefined') {
// whatever
}
給你的問題:你真的希望得到'undefined'傳遞給你的字串嗎?為什么要防備'0'被送到parseFloat?你確定parseInt不是你想要的嗎?
uj5u.com熱心網友回復:
看來您想檢查是否timeInMins是精確Number型別。
function isValidNumber(num) {
return typeof num === "number" && !isNaN(num);
}
console.log(isValidNumber(""));
console.log(isValidNumber(undefined));
console.log(isValidNumber(NaN));
console.log(isValidNumber("undefined"));
console.log(isValidNumber(true));
console.log(isValidNumber(false));
console.log(isValidNumber(0));
console.log(isValidNumber("0"));
console.log(isValidNumber(1.234));
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/482677.html
標籤:javascript
