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