JavaScript增量运算符不会递增1

时间:2015-05-17 11:23:49

标签: javascript clock

我在JavaScript中创建时钟但是当我使用递增运算符将秒递增1时,值会增加* 2.

var hours=0;
var sec=0;
var min=0;

function clock(){

    document.getElementById("sec").innerHTML= ++sec;
    if(sec>59){
        document.getElementById("min").innerHTML= ++min;
        sec=0;
    } else if(min>59){
        document.getElementById("hours").innerHTML = ++hours;
        min=0;
    }
    else if(hours>12){
        hours=0;
    }
    setInterval(clock, 1000);
}
clock();

2 个答案:

答案 0 :(得分:2)

你不应该使用if。

你不应该在clock函数中使用setInterval。它应该是setTimeout。使用setInterval意味着在每次迭代时,您将添加另一个间隔。

第三,setTimeout / setInterval不准确。您应该只使用开始日期并减去当前日期并确定时差。

答案 1 :(得分:0)

@epascarello 也对。但另一件事。

当您使用增量运算符时,添加 ++ AFTER 一个变量。

改为:

++sec to sec++
++min to min++
++hours to hours++