加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Javascript面试中经常被问到的三个问题!

发布时间:2019-03-08 05:31:02 所属栏目:建站 来源:前端小智
导读:副标题#e# 本文不是讨论最新的 JavaScript 库、常见的开发实践或任何新的 ES6 函数。相反,在讨论 JavaScript 时,面试中通常会提到三件事。我自己也被问到这些问题,我的朋友们告诉我他们也被问到这些问题。 然,这些并不是你在面试之前应该学习的唯一三件

现在一起实现一个 throttle:

  1. // fn是我们需要包装的事件回调, interval是时间间隔的阈值  
  2. function throttle(fn, interval) {  
  3.   // last为上一次触发回调的时间  
  4.   let last = 0  
  5.   // 将throttle处理结果当作函数返回  
  6.   return function () {  
  7.       // 保留调用时的this上下文  
  8.       let context = this  
  9.       // 保留调用时传入的参数  
  10.       let args = arguments  
  11.       // 记录本次触发回调的时间  
  12.       let now = +new Date()       
  13.       // 判断上次触发的时间和本次触发的时间差是否小于时间间隔的阈值  
  14.       if (now - last >= interval) {  
  15.       // 如果时间间隔大于我们设定的时间间隔阈值,则执行回调  
  16.           last = now;  
  17.           fn.apply(context, args);  
  18.       }  
  19.     }  
  20. }  
  21. // 用throttle来包装scroll的回调  
  22. const better_scroll = throttle(() => console.log('触发了滚动事件'), 1000)  
  23. document.addEventListener('scroll', better_scroll) 

Debounce: 最后一个参赛者说了算

防抖的主要思想在于:我会等你到底。在某段时间内,不管你触发了多少次回调,我都只认最后一次。

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!