2014-12-04 47 views
1

我有錯穿過一個值,但是當我讀的console.log(),它顯示timeout: 70當它應該是timeout: 0typeofnumber的JavaScript檢查是否存在參數錯誤,但價值

JavaScript函數
FancyPants(0); 

function FancyPants(t) { 
    console.log(typeof t); 
    if (t) { 
     var timeout = t; 
    } else { 
     var timeout = 70; 
    } 
    console.log('timeout: '+timeout); 
} 

回答

10

0是falsy值:

> Boolean(0) 
false 

因此條件不滿足,轉而執行的else分支。

要接受0,使用更嚴格的測試:

if (typeof t === 'number') { 

我猜你不想負超時(也處理NaN)之一:

if (typeof t === 'number' && t >= 0) { 
+0

如果我想傳遞什麼通過0? – ngplayground 2014-12-04 16:13:49

+0

這正是這個代碼和我的答案的全部內容所處理的內容。 – 2014-12-04 16:14:46