要想工作找得好 防抖一定要知晓

212 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情

目录

今日题

  1. 题目
  2. 分析 昨日题
  3. 题目
  4. 答案
  5. 解析 结语

今日题

题目

防抖和节流是前端请求中一个必不可少的话题。用户对同一操作发出了多次的请求,在这种情况下,只需要完成一次请求就可以,其余的请求我们都可以认为是多余的。而这部分多余的请求消耗的带宽和算力都是实打实的。 所以我们今天的题目就是,封装一个防抖请求。

分析

防抖是什么?抖动可以理解为多次的重复动作,防抖就是防止这种多次的重复动作。 计算机里的防抖多指在进行触发下一次的请求时候,取消上一次的重复请求。

友情提示:定时器是防抖操作的好助手。

昨日题

题目

在不调用任何数组API的情况下,实现数组的shift方法

答案

let arr=[0,1,1,2,3,4]
arr.__proto__.shift=function shift(){
    let temp =this[0]
	for(let i=0;i<this.length-1;i++){
		arr[i]=this[i+1]
	}
	this.length=this.length-1
	return temp
}
console.log(arr.shift(),arr)

解析

首先我们先解释一下js的shift的作用是什么?Js中的shift会删除数组中的第一个元素。并返回一个删除元素。

实现我们自己的shift,我们可以参照一下底层数组删除的过程。

声明一个1、2、3、4、5的数组。

删除1,则将2 ~ 3依次向前复制并覆盖,此时变为2、3、4、5、5,之后在删除数组的最后一项就完成了。

了解了底层数组删除的过程,我们就可以完成自己的shift了。我们首先保存数组中的第一个元素。之后对整个数组进行遍历,依次向前复制并覆盖。这里我们使用基础的for循环进行便利将数组中的元素依次向前复制并覆盖。 在迭代结束之后,删除最后一个元素,并把保存的初值返回。

结语

此文章已收录至《JavaScript每日一题》专栏,如果你对本专栏有任何建议,欢迎反馈。如果你对此文章中的题目还有不懂的地方,那么请在评论区留言与大家一起讨论吧。
创作不易,少年,就请留个赞再走吧!