记录--20道前端手写面试题

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

成都创新互联专注于企业全网整合营销推广、网站重做改版、白沙黎族网站定制设计、自适应品牌网站建设、H5响应式网站电子商务商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为白沙黎族等各大城市提供网站开发制作服务。

1. 防抖节流

这也是一个经典题目了,首先要知道什么是防抖,什么是节流。

  • 防抖: 在一段时间内,事件只会最后触发一次。

  • 节流: 事件,按照一段时间的间隔来进行触发。

    实在不懂的话,可以去这个大佬的Demo地址玩玩防抖节流DEMO

 // 防抖
    function debounce(fn) {
      let timeout = null; 
      return function () {
        // 如果事件再次触发就清除定时器,重新计时
        clearTimeout(timeout);
        timeout = setTimeout(() => {
          fn.apply(this, arguments);
        }, 500);
      };
    }
    
    // 节流
    function throttle(fn) {
      let flag = null; // 通过闭包保存一个标记
      return function () {
        if (flag) return; // 当定时器没有执行的时候标记永远是null
        flag = setTimeout(() => {
          fn.apply(this, arguments);
           // 最后在setTimeout执行完毕后再把标记设置为null(关键)
           // 表示可以执行下一次循环了。
          flag = null;
        }, 500);
      };
    }

网站栏目:记录--20道前端手写面试题
本文路径:http://myzitong.com/article/dsojpds.html