JavaScript检查参数是否存在但值是否错误

时间:2014-12-04 16:10:23

标签: javascript

我错了一个传递值的JavaScript函数,但是当我读取console.log()时,它显示timeout: 70,它应该是timeout: 0typeofnumber

FancyPants(0);

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

1 个答案:

答案 0 :(得分:10)

0是一个假值:

> Boolean(0)
false

因此不满足条件,而是执行else分支。

要接受0,请使用限制性更强的测试:

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

我猜你不想要负面超时(也处理NaN):

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