设置定时器 当时间到了 浏览器执行定时器的回调函数 挂载在window上方法
- window.setTimeout(callback,timeInterval) 时间到 执行一次 也称超时调用 callback 执行的回调函数 timeInterval 时间间隔
- window.setInterval(callback,timeInterval) 每隔一段时间 执行一次 也称间歇调用
- 以上两种方法都会返回一个定时器ID
- 清除定时器 clearTimeout clearInterval 清除指定的定时器 清除后 这个定时器不管有没有执行过 都会停止执行
同步执行
执行任务 按照一定的次序执行 当这个事件没有执行结束后 不会执行下一个事件
异步执行
当事件执行的时机不固定时 浏览器会先执行后面的任务 当后面的事件执行完后 再返回来执行当前事件
- JS常见异步执行
- 事件函数都是异步执行
- 定时器的回调函数也是异步执行
- Ajax中的异步
- 回调函数也是异步执行
浏览器如何实现异步机制
浏览器中有两个任务队列
- 主线任务 存放当前需要同步执行的同步任务
- 等待任务 不需要立刻执行的异步任务都放到等待任务队列中
- 当主任务队列中的任务执行结束后,就去执行等待任务队列中的任务 必须等主线任务执行完成后 再执行等待队列的任务
- 死循环就相当于主任务队列没有执行完
回调函数
函数A当做实参传递给函数B 在函数B执行时 需要A的地方时 把A执行 这种机制称为回调函数机制
- 特点
- 回调函数可以执行多次
- 可以传递实参
- 可以改变回调函数中this的指向
- 可以在宿主函数中 接收回调函数执行的返回结果
- 常见内置的回调函数
- 定时器
- sort方法
- forEach方法
- map方法