js面试题之手写节流函数和防抖函数

函数节流:不断触发一个函数后,执行第一次,只有大于设定的执行周期后才会执行第二次

 1 /*
 2             节流函数:fn:要被节流的函数,delay:规定的时间
 3         */
 4        function throttle(fn,delay){
 5             // 记录上一次函数出发的时间
 6             var lastTime = 0
 7             return function(){
 8             // 记录当前函数触发的时间
 9             var nowTime = new Date().getTime()
10             // 当当前时间减去上一次执行时间大于这个指定间隔时间才让他触发这个函数
11             if(nowTime - lastTime > delay){
12                 // 绑定this指向
13                 fn.call(this)
14                 //同步时间
15                 lastTime = nowTime
16             }
17             }
18        }   

函数防抖:不断触发一个函数,在规定时间内只让最后一次生效,前面都不生效

 1 function debounce(fn,delay){
 2            var timer = null
 3         //  清除上一次延时器
 4           return function(){
 5                clearTimeout(timer)
 6               //  重新设置一个新的延时器
 7               timer = setTimeout(() => {
 8                   fn.call(this)
 9               }, delay);
10           }
11        }

更多面试题请前往githubhttps://github.com/bettersong/interview

原文地址:https://www.cnblogs.com/songyao666/p/11415787.html

时间: 2024-11-09 00:59:04

js面试题之手写节流函数和防抖函数的相关文章

面试题|手写JSON解析器

这周的 Cassidoo 的每周简讯有这么一个面试题:: 写一个函数,这个函数接收一个正确的 JSON 字符串并将其转化为一个对象(或字典,映射等,这取决于你选择的语言).示例输入: fakeParseJSON('{ "data": { "fish": "cake", "array": [1,2,3], "children": [ { "something": "else&qu

【前端面试】同学,你会手写代码吗?

CSS 部分 两栏布局 要求:垂直两栏,左边固定右边自适应. 查看代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-e

图片训练:使用卷积神经网络(CNN)识别手写数字

这篇文章中,我们将使用CNN构建一个Tensorflow.js模型来分辨手写的数字.首先,我们通过使之“查看”数以千计的数字图片以及他们对应的标识来训练分辨器.然后我们再通过此模型从未“见到”过的测试数据评估这个分辨器的精确度. 一.运行代码 这篇文章的全部代码可以在仓库TensorFlow.js examples中的tfjs-examples/mnist 下找到,你可以通过下面的方式clone下来然后运行这个demo: $ git clone https://github.com/tensor

10个常见的Node.js面试题

如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. 在进入正文之前,需要提前声明两点: 这些问题只是Node.js知识体系的一个局部,并不能完全考察被面试者的实际开发能力. 对现实世界开发中遇到的问题,需要的是随机应变与团队合作,所以你可以尝试结对编程. Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听8

C#中调用Matlab人工神经网络算法实现手写数字识别

手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写阿拉伯数字识别是图像内容识别中较为简单的一个应用领域,原因有被识别的模式数较少(只有0到9,10个阿拉伯数字).阿拉伯数字笔画少并且简单等.手写阿拉伯数字的识别采用的方法相对于人脸识别.汉字识别等应用领域来说可以采用更为灵活的方法,例如基于规则的方法.基于有限状态自动机的方法.基于统计的方法和基于神

手写bind源码

手写bind源码 改变函数this指向的三个方法:call bind apply 三个方法的相同点: 目标函数被调用时,改变this的指向的值 三个方法都是函数的方法,挂在在Function.prototype上 不同点: 目标函数调用call和apply后,会直接被执行 目标函数调用bind后,不会立即执行,而是返回一个新的函数,调用新函数才会执行目标函数 自定义一个类似于bind函数的函数,将其挂载到函数Function上面,然后就可以用函数来调用该自定义的函数了 给函数扩展一个方法 Fun

jQuery手写几个常见的滑动下拉菜单 分分秒秒学习JS

一般的企业网站再我们再实际工作中,有些特效,用jQuery来做,显得极其简单,除非一些大的公司,需要封装自己的类. 今天,我们讲解jQuery入门知识,来写几个简单jQuery滑动下拉菜单.感受一下jQuery的简单快速的神奇之处. 学完本章,可以书写最常见的下拉菜单写法. 案例1 效果如图所示: 在书写这个滑动的下拉菜单的时候,我们首先来认识下jQuery里面的滑动方法 :slideToggle() slideToggle(执行时间,运动方式,返回函数) 执行时间: 常用的是 "slow&qu

自己手写的自动完成js类

在web开发中,为了提高用户体验,会经常用到输入框的自动完成功能,不仅帮助用户进行快速输入,最重要的是帮助那些“记不全要输入什么”的用户进行选择.这个功能有很多插件已经实现了,为了适应项目的特殊需求,决定自己编写一个具备通用性.扩展性和灵活性的自动完成类,就当是边写边学习了,一举两得.该功能是比较简单的,核心是数据获取方式和导航的实现,简单写了一个,经测试非常好用,还有很多地方需要修改和改进,例如:在原型中只暴露init方法即可,其他方法都需要放到私有空间内,不让用户访问到,这个以后再完善吧.啥

10min手写(五):面试题解析丨Python实现tail -f功能

作者:蜗牛 shengxinjing (woniuppp) · GitHub 写这篇文章的初衷是有人去面试遇到了这个笔试题,不知道怎么做,没有什么思路,就发到了Reboot 的交流群里,让大家一起讨论讨论. 关于这道题,简单说一下我的想法吧.当然,也有很好用的 pyinotify 模块专门监听文件变化,不过我更想介绍的,是解决的思路.毕竟作为面试官,还是想看到一下解决问题的思路,而且我觉得这一题的难点不在于监控文件增量,而在于怎么打印最后面10行. 希望大家在读这篇文章前,对 Python 基础