在JavaScript中,setTimeout 和 setInterval 是两个用于定时操作的函数,它们都定义在 window 对象上,并且是Web API的一部分。
setTimeout
setTimeout 函数用于在指定的毫秒数后执行一个函数或一段代码。这个函数只执行一次。
语法:
let timeoutID = setTimeout(function[, delay, arg1, arg2, ...]);
function:这是要执行的函数。delay(可选):延迟执行的时间,以毫秒为单位,默认是0。arg1, arg2, ...(可选):传递给函数的参数。
示例:
function sayHello() {console.log('Hello!');
}// 延迟2秒执行sayHello函数
setTimeout(sayHello, 2000); // 等同于 setTimeout(function() { sayHello(); }, 2000);
setInterval
setInterval 函数用于每隔指定的毫秒数重复执行一个函数或一段代码。
语法:
let intervalID = setInterval(function[, delay, arg1, arg2, ...]);
function:这是要重复执行的函数。delay(可选):间隔时间,以毫秒为单位,默认是0。arg1, arg2, ...(可选):传递给函数的参数。
示例:
function count() {console.log('Counting...');
}// 每隔1秒执行count函数
setInterval(count, 1000);
清除定时器
使用 clearTimeout 和 clearInterval 可以取消之前设置的 setTimeout 和 setInterval。
clearTimeout(timeoutID):取消由setTimeout设置的定时器。clearInterval(intervalID):取消由setInterval设置的定时器。
示例:
let timeoutID = setTimeout(sayHello, 2000);
// 取消定时器
clearTimeout(timeoutID);let intervalID = setInterval(count, 1000);
// 取消定时器
clearInterval(intervalID);
这两个函数非常有用,可以用于实现各种需要定时执行任务的场景,比如动画、轮询、定时提醒等。