2020前端开发最新面试题总结

1.数组去重

//indexOf判断下标实现
var arr = [1,1,5,2,8,5,8,2,1,3];
var newArr = [];
for (var i = 0;i<arr.length;i++){
   
	if(arr.indexOf(arr[i])===i){
   
	newArr.push(arr[i])
	}
}
console.log(newArr)

//es6实现
//set结合拓展运算符使用 
const set = new Set([1,2,3,4,4]);
console.log([...set])

//set结合Array.form使用
const set = Array.form(new.Set([1,2,3,4,
4]))

2.防抖

所谓防抖,就是指触发事件后在一定时间内函数只能执行一次,如果在一定时间内又触发了事件,则会重新计算函数执行时间。
类似我们的电脑屏保 生活中的电梯 都有固定的时间,如果中间移动鼠标或者触发电梯按钮,都会重新进行等待。
使用场景:高频触发的事件,比如操作input框 (搜索框)
代码实现:
//用定时器实现防抖
function debounce(func,wait) {
   
    var timer=null;
    return function() {
   
    //保存当前调用的dom对象
     var _this=this;
     //保存事件对象
     var args=arguments;
     clearTimeout(timer)
     timer=setTimeout(function() {
   
         func.apply(_this,args)
     },wait)
    }
}

3.节流

所谓节流,就是指连续触发事件,但是在 规定时间中只执行一次函数。
无论在固定时间内是否有事件触发,都会按照固定时间规律触发
比如闹钟
代码实现:
//时间戳版本实现节流
function throttle(func,wait) {
   
    //定义初始时间
    var oldTime=0;
    return function() {
   
        var _this=this;
        var args=arguments;
        //当前时间戳
        var newTime
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值