# JavaScript教程 - 14 常用API

继续介绍一些常用的API

# 14.6 定时器

定时器可以延时周期性的执行函数。

# 1 setTimeout

setTimeout(callback, delay) 函数可以延时执行某个函数一次

举个栗子:

setTimeout(() => {
  alert("2 秒后执行一次");
}, 2000); // 单位是毫秒
1
2
3
  • 第一个参数是回调函数,延时时间到了以后要执行的函数;第二个参数是延迟时间(单位毫秒)。

如果要取消定时器,可以使用 clearTimeout(timer)。

举个栗子:

const timerId = setTimeout(() => {
  alert("2 秒后执行一次");
}, 2000); // 单位是毫秒

clearTimeout(timerId); // 取消执行
1
2
3
4
5
  • setTimeout() 会返回一个定时器的ID,可以通过 ID 使用 clearTimeout() 函数取消定时器。

# 2 setInterval

setInterval(callback, interval) 函数可以每隔一段时间重复执行函数(无限次,除非取消)。

举个栗子:

setInterval(() => {
  console.log("每隔 1 秒执行一次");
}, 1000);
1
2
3
  • 上面会每隔一秒执行一次回调函数。

可以使用 clearInterval 清除定时器,下面我们模拟一个倒计时:

let count = 5;
const timer = setInterval(() => {
  console.log(count);
  count--;
  if (count < 0) {
    clearInterval(timer);  // 停止计时器
    console.log("倒计时结束!");
  }
}, 1000);
1
2
3
4
5
6
7
8
9