MST

星途 面试题库

面试题:JavaScript 中事件节流的实现原理及简单代码实现

请阐述 JavaScript 事件节流的原理,并使用原生 JavaScript 编写一个简单的事件节流函数,要求该函数接受一个执行函数和延迟时间作为参数。
41.5万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

事件节流原理

事件节流(Throttle)的原理是指在一定时间内,无论触发事件的频率有多高,都只执行一次回调函数。就像是给事件的触发加了一个阀门,规定在某段时间内只能通过一次水流(执行一次函数),即使水流(事件触发)很频繁,也不会连续通过。这样可以有效减少高频率事件触发时回调函数的执行次数,提升性能,避免因频繁执行某些操作(如 DOM 操作、网络请求等)而导致的性能问题。

代码实现

function throttle(func, delay) {
    let timer = null;
    return function() {
        if (!timer) {
            func.apply(this, arguments);
            timer = setTimeout(() => {
                timer = null;
            }, delay);
        }
    };
}