# JavaScript 如何实现 debounce 防抖

URL: https://caijiao.org/how-to/javascript/debounce-function
Source: docs/how-to/javascript/debounce-function.md
Description: JavaScript 如何实现 debounce 防抖：清掉上一次定时器，只在停止触发一段时间后执行。 示例可直接复制到浏览器或项目代码中，并附相关教程、工具入口。

## 快速答案

清掉上一次定时器，只在停止触发一段时间后执行。

```js
function debounce(fn, wait = 300) {
  let timer;
  return (...args) => {
    clearTimeout(timer);
    timer = setTimeout(() => fn(...args), wait);
  };
}
```

## 使用要点

- 先用最小数据跑通示例，再把字段名、选择器或函数名换成项目里的真实值。
- 接入后补一个失败分支，避免只覆盖演示中的成功路径。

## 相关内容

- [JavaScript / TypeScript 问题](/how-to/javascript/)
- [JavaScript 教程](/javascript/)
- [TypeScript 教程](/ts/)
- [JSON Formatter](/tool/json-formatter)
- [JSON Validator](/tool/json-validator)
