簡體   English   中英

JavaScript檢查參數是否存在但值錯誤

[英]JavaScript checking if parameter exists but wrong value

我錯了一個傳遞值的JavaScript函數,但是當我讀取console.log()時,它顯示了timeout: 70 ,應該timeout: 0typeof是一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM