定时器:延迟执行
setTimeout(function(){},1000)
参数1:函数,延迟执行的业务代码放在函数体内
参数2:延迟时间,单位毫秒
window.setTimeout
在JS中,如果使用的方法是属于window对象的方法或属性,那么window可以省略不写(如果定时器写在某个委托中,那么定时器内的函数中的业务代码如果有this的出现,this是指向window的,会导致效果无法实现)
计时器:间隔执行
setInterval(function(){},1000)
节流,防抖,区别
- 节流:固定时间内 多次操作以首次为准(只执行第一次操作) 利用flag=true、false用作节流阀 作用:降低代码执行频率
- 防抖:多次操作以末次为准
```javascript
var flag = true; //表示节流阀
btn.onclick = function(){
if(flag){
console.log('发送请求');
flag = false; //关闭节流阀
setTimeout(function(){
flag = true; //1s之后开启节流阀
},1000)
}
}
// 防抖: 多次操作 以末次为准 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) } ```