本題摘自於我 github 上的面試每日一題: https://github.com/shfshanyue...,並有大廠面經及內推信息,可在左下角打開原文連接
防抖,顧名思義,防止抖動,以避免把一次事件誤認爲屢次,敲鍵盤就是一個天天都會接觸到的防抖操做。前端
想要了解一個概念,必先了解概念所應用的場景。在 JS 這個世界中,有哪些防抖的場景呢git
代碼以下,能夠看出來防抖重在清零 clearTimeout(timer)
github
function debounce (f, wait) { let timer return (...args) => { clearTimeout(timer) timer = setTimeout(() => { f(...args) }, wait) } }
節流,顧名思義,控制水的流量。控制事件發生的頻率,如控制爲1s發生一次,甚至1分鐘發生一次。與服務端(server)及網關(gateway)控制的限流 (Rate Limit) 相似。web
scroll
事件,每隔一秒計算一次位置信息等代碼以下,能夠看出來節流重在開關鎖 timer=null
面試
function throttle (f, wait) { let timer return (...args) => { if (timer) { return } timer = setTimeout(() => { f(...args) timer = null }, wait) } }
clearTimeout
timer=timeout; timer=null
掃碼添加個人微信,備註進羣,加入高級前端進階羣瀏覽器
<figure>
<img width="240" src="https://user-gold-cdn.xitu.io/2020/6/29/172fe14e18d2b38c?w=430&h=430&f=jpeg&s=38173" alt="加我微信拉你進入面試交流羣">
<figcaption>加我微信拉你進入面試交流羣</figcaption>
</figure>服務器
歡迎關注公衆號【互聯網大廠招聘】,定時推送大廠內推信息及面試題簡答,天天學習五分鐘,半年進入大廠中微信
<figure>
<img width="240" src="https://user-gold-cdn.xitu.io/2020/6/30/17302a9e47a3a422?w=430&h=430&f=webp&s=7634" alt="更多大廠招聘,面試面經,技能要求,請關注公衆號【互聯網大廠招聘】">
<figcaption>天天五分鐘,半年大廠中</figcaption>
</figure>併發