ES6防抖及节流的方法

ES6提供了防抖函数和节流函数来控制函数的执行频率。

  1. 防抖函数(Debounce):在一定时间内,只执行最后一次触发的函数。

```javascript

function debounce(func, delay) {

let timer;

return function (...args) {

clearTimeout(timer);

timer = setTimeout(() => {

func.apply(this, args);

}, delay);

};

}

```

使用示例:

```javascript

function handleInput() {

console.log('Input changed');

}

const debouncedHandleInput = debounce(handleInput, 500);

document.getElementById('input').addEventListener('input', debouncedHandleInput);

```

  1. 节流函数(Throttle):在一定时间内,固定间隔执行函数。

```javascript

function throttle(func, limit) {

let inThrottle;

return function (...args) {

if (!inThrottle) {

func.apply(this, args);

inThrottle = true;

setTimeout(() => {

inThrottle = false;

}, limit);

}

};

}

```

使用示例:

```javascript

function handleScroll() {

console.log('Scrolling');

}

const throttledHandleScroll = throttle(handleScroll, 500);

window.addEventListener('scroll', throttledHandleScroll);

```

这两个函数可以帮助我们优化一些需要控制函数执行频率的场景,比如输入框输入验证、滚动事件处理等。

相关推荐
刘宇琪8 分钟前
配置 TypeScript 支持 Vite 中的路径别名和自动类型提示
前端
前端付豪9 分钟前
AI Tutor v5:自动出卷系统
前端·python·llm
玉米Yvmi11 分钟前
TS 入门:给 React 穿上“防弹衣”
前端·react.js·typescript
换日线°11 分钟前
3D 旋转立方体效果(摇塞子)
前端·3d·vue
大雷神13 分钟前
HarmonyOS APP<玩转React>开源教程十一:组件化开发概述
前端·react.js·harmonyos
Flutter笔记15 分钟前
独立开发了一个睡眠记录 App:SleepDiary / 睡眠声音日记
前端
YimWu15 分钟前
面试官:能聊聊 oh-my-opencode 这个插件都有啥内容吗?
前端·agent·ai编程
前端付豪15 分钟前
AI Tutor v4:学习路径推荐(Learning Path)
前端·python·llm
爱吃的小肥羊19 分钟前
等了整整一年,Midjourney V8今天终于开放测试了!
前端
玉米Yvmi24 分钟前
给 JS穿上铠甲:TypeScript 基础核心概念详解(类型/接口/泛型)
前端·javascript·typescript