setTimeout()与setInterval()方法区别介绍


`setTimeout()` 和 `setInterval()` 是 JavaScript 中常用的两个定时器方法,它们之间有一些关键的区别:

### setTimeout()

- **定义**:`setTimeout()` 方法用于在指定的毫秒数后调用函数或计算表达式。

- **行为**:该方法只执行一次指定的函数。一旦执行完成,定时器就停止了。

- **使用场景**:适用于需要延迟执行某些操作,但只执行一次的场景。

- **语法**:`setTimeout(function, milliseconds, param1, param2, ...)`

### setInterval()

- **定义**:`setInterval()` 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

- **行为**:该方法会不停地调用函数,直到 `clearInterval()` 被调用或窗口被关闭。

- **使用场景**:适用于需要重复执行某些操作的场景,如动画、轮询等。

- **语法**:`setInterval(function, milliseconds, param1, param2, ...)`

### 区别总结

1. **执行次数**:`setTimeout()` 执行一次后停止;`setInterval()` 会持续重复执行,直到被清除。

2. **应用场景**:`setTimeout()` 适用于延迟执行单次任务;`setInterval()` 适用于周期性重复执行的任务。

3. **停止方式**:两者都可以通过调用 `clearTimeout()` 和 `clearInterval()` 方法来停止执行,但 `setTimeout()` 通常不需要手动停止,因为它本身就是一次性的。

示例代码:


// 使用 setTimeout
setTimeout(function() {
    console.log('这条信息将在3秒后显示');
}, 3000);

// 使用 setInterval
let intervalId = setInterval(function() {
    console.log('这条信息会每隔2秒显示一次');
}, 2000);

// 假设在5秒后停止 setInterval
setTimeout(function() {
    clearInterval(intervalId);
    console.log('定时器已停止');
}, 5000);