[英]JavaScript checking if parameter exists but wrong value
我錯了一個傳遞值的JavaScript函數,但是當我讀取console.log()時,它顯示了timeout: 70
,應該timeout: 0
且typeof
是一個number
FancyPants(0);
function FancyPants(t) {
console.log(typeof t);
if (t) {
var timeout = t;
} else {
var timeout = 70;
}
console.log('timeout: '+timeout);
}
0
是一個偽造的值:
> Boolean(0)
false
因此條件不滿足,而是執行else
分支。
要接受0
,請使用更嚴格的測試:
if (typeof t === 'number') {
而且我猜您也不希望出現負超時(也可以處理NaN
):
if (typeof t === 'number' && t >= 0) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.