1.js的定时器
setTimeout()
1)在指定的毫秒数后执行代码
2)返回值:返回计时器的个数
3)参数:第一个参数是callback
第二个参数是毫秒
如果毫秒是0,上来就直接执行。其实是有一个时间推迟,大概是5毫秒。
clearTimeout()
1)清除setTimeout()开启的定时器
2)返回值:没有返回值
3)参数:要删除的定时器
setInterval()
1)每隔多少毫秒反复的执行回调函数
2)返回值:计时器的个数
3)参数:第一个是callback
第二个是毫秒
clearInterval()
1)清除setInterval()定时器
2)没有返回值
3)参数:要删除的定时器
2.计时器中的this问题
计时器中的this统统指向window
3.js的执行机制
js是单线程。
为了解决js是单线程的问题,js提供了同步处理和异步处理
同步处理:前一个任务执行完后才能执行下一个
异步处理:前一个任务花费时间长,无需等待,直接处理下一个
js的异步执行:事件 定时器 资源请求
4.总结
①计时器不是从计时器函数执行后就开始计时,而是主线程的代码执行完毕之后才开始计时
②主线程执行过程中,setTimeout onclick会执行,只是里面的callback会排队提交。setTimeout等主线程结束后开始计时,达到计时时间就提交任务,onclick
浙公网安备 33010602011771号