settimeout = setinterval有延迟吗?

use*_*485 3 html javascript

关于settimeout的快速问题,是否像setinterval一样定期执行?

假设我有一条线setTimeout("functionx();" , 1000),就是functionx()只执行一次(1秒后)?或者它是这样的:

  1. 1秒延迟
  2. 运行functionx()
  3. 之后每1秒执行一次functionx?

谢谢

T.J*_*der 6

setTimeout 是一次性的,你给它的功能只被调用一次.

(偏离主题:请注意,您几乎从不想要给出任何一个setTimeoutsetInterval 包含代码的字符串;而是给它一个实际的函数引用.)

因此,这将调用函数foo一次,以后半秒左右(这些东西都不是准确的):

function foo() {
    display("Hi there");
}
setTimeout(foo, 500);
Run Code Online (Sandbox Code Playgroud)

......然而,这将持续每半秒左右调用一次,直到你停止它为止:

var timer = setInterval(foo, 500);
// Somewhere else, stop it:
clearInterval(timer);
Run Code Online (Sandbox Code Playgroud)