定时器:延迟执行

setTimeout(function(){},1000)
参数1:函数,延迟执行的业务代码放在函数体内
参数2:延迟时间,单位毫秒

window.setTimeout
在JS中,如果使用的方法是属于window对象的方法或属性,那么window可以省略不写(如果定时器写在某个委托中,那么定时器内的函数中的业务代码如果有this的出现,this是指向window的,会导致效果无法实现)

计时器:间隔执行

setInterval(function(){},1000)

节流,防抖,区别

  • 节流:固定时间内 多次操作以首次为准(只执行第一次操作) 利用flag=true、false用作节流阀 作用:降低代码执行频率
  • 防抖:多次操作以末次为准 ```javascript var flag = true; //表示节流阀
    1. btn.onclick = function(){
    2. if(flag){
    3. console.log('发送请求');
    4. flag = false; //关闭节流阀
    5. setTimeout(function(){
    6. flag = true; //1s之后开启节流阀
    7. },1000)
    8. }
    9. }

// 防抖: 多次操作 以末次为准 var timer = null; document.onmousemove = function(e){ clearTimeout(timer); timer = setTimeout(function(){ box.style.left = e.clientX- 50 + ‘px’; box.style.top = e.clientY - 50 + ‘px’; },10) } ```