我错了一个传递值的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 :(得分:10)
0
是一个假值:
> Boolean(0)
false
因此不满足条件,而是执行else
分支。
要接受0
,请使用限制性更强的测试:
if (typeof t === 'number') {
我猜你不想要负面超时(也处理NaN
):
if (typeof t === 'number' && t >= 0) {