在JavaScript计时器函数中使用`?`返回

时间:2014-04-18 13:11:46

标签: javascript

所以我偶然发现了一些Javascript计时器示例,并且有这个函数,它会在其中输入一个数字然后函数返回时间:

function timer(variable){
   return variable > 9 ? variable : "0" + variable;
}

整个代码看起来像这样:

var sec = 0;
function timer(variable){
    return variable > 9 ? variable : "0" + variable;
}
setInterval(function(){
    $("#time-id").val("Minutes: "+timer(parseInt(sec/60, 10))+" Seconds: "+timer(++sec%60));
}, 1000);

是的,setInterval函数对我来说非常清楚,但关于timer()

?的用法是什么?如果我有多个参数,它是如何理解的。它是否应该标记为:timer(variable1, variable2){}

4 个答案:

答案 0 :(得分:5)

计时器正在格式化时间,如果它是6:05,它显示为6:05而不是6:5

return variable > 9 ? variable : "0" + variable;

相同
if ( variable > 9 ) {
    return variable
} else {
    return "0" + variable
}

答案 1 :(得分:4)

?:是许多现代语言共享的运算符。它是if测试的捷径。结构如下:

condition ? resultIfTrue : resultIfFalse

在你的情况下,如果变量是<你的变量会向你的变量追加0。你可以把它读成:

if (variable > 9)
     do nothing
else
     add a "0" before

答案 2 :(得分:2)

它说如果variable为10或更多,它只会回复variable;否则它在开头添加0仍然使它成为两位数。

答案 3 :(得分:2)

variable > 9 ? variable : "0" + variable;是一个三元表达式。评估variable > 9,如果它是真的,则返回variable,否则返回"0" + variable。可以将其视为带有赋值的if-else语句的单行替代。