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);
```

2. 节流函数(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);
```

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

你可能感兴趣的:(es6,javascript,前端)