what is setTimeOut() function in javascript?

2020-02-13 00:59发布

问题:

Can i ask what the function of setTimeOut method in javascript?As below:

function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
// add a zero in front of numbers<10
m=checkTime(m);
s=checkTime(s);
document.getElementById('txt').innerHTML=h+":"+m+":"+s;
t=setTimeout('startTime()',500);
}

回答1:

Not sure you what you want.

setTimeout is a method of the global window object. It executes the given function (or evaluates the given string) after the time given as second parameter passed.

Read more about setTimeout.



回答2:

setTimeout() just schedules (sets a timer for) a function to execute at a later time, 500ms in this case. In your specific code, it's updating the screen with the current time every half-second (it only schedules one call, 500ms from now...but that startTime call scheduled another).

Also...passing a string to it when you can avoid it is bad practice, for your example it should be:

t = setTimeout(startTime, 500);


回答3:

It schedules your startTime function to start again half a second later (500 miliseconds), updating you clock.



回答4:

setTimeOut sets a timer and executes the given code after that timer timed out. So using your code, if startTime is called once, it is repeated every half second.

Btw. I assume the delay of 500 ms is used te work around small deviations in the clock. You will want to update the value of the element every whole second. To do that, it is better to calculate the time until the next whole second and set that as a delay. This will give you a more accurate clock.