我可以问一下javascript中setTimeOut方法的功能吗?如下:
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);
}
答案 0 :(得分:5)
答案 1 :(得分:4)
setTimeout()
只调度(设置一个定时器)一个函数,以便稍后执行,在这种情况下为500ms。在您的特定代码中,它使用当前时间每半秒更新屏幕(它只安排一个呼叫,从现在起500毫秒......但 startTime
呼叫预定另一个)。
另外......当你可以避免它时,将一个字符串传递给它是不好的做法,对于你的例子它应该是:
t = setTimeout(startTime, 500);
答案 2 :(得分:0)
答案 3 :(得分:0)
setTimeOut
设置一个计时器,并在该计时器超时后执行给定的代码。因此,使用您的代码,如果startTime被调用一次,则每半秒重复一次。
顺便说一下。我假设使用500 ms的延迟来解决时钟中的小偏差问题。您将希望每秒更新元素的值。要做到这一点,最好计算直到下一整秒的时间并将其设置为延迟。这将为您提供更准确的时钟。
答案 4 :(得分:-1)
setTimeout()
方法允许您在经过一定时间后执行一段代码。您可以将该方法视为一种设置计时器以在特定时间运行 JavaScript 代码的方法。
例如,下面的代码将在 2 秒后将“Hello World”打印到 JavaScript 控制台:
setTimeout(function(){
console.log("Hello World");
}, 2000);
console.log("setTimeout() example...");
<块引用>
输出:-
function greeting(){
console.log("Hello World");
}
setTimeout(greeting, 2000);
如果您omit
第二个参数,那么setTimeout()
将立即执行传递的函数,无需等待。
您还可以向 setTimeout()
方法传递其他参数。
function greeting(name, city){
console.log(`Hello, my name is ${name}`);
console.log(`I live in ${city}`);
}
setTimeout(greeting, 2000, "Milan", "Kathmandu");