定时器 同步 异步 回调函数

1,764 阅读2分钟

设置定时器 当时间到了 浏览器执行定时器的回调函数 挂载在window上方法

  1. window.setTimeout(callback,timeInterval) 时间到 执行一次 也称超时调用 callback 执行的回调函数 timeInterval 时间间隔
  2. window.setInterval(callback,timeInterval) 每隔一段时间 执行一次 也称间歇调用
  • 以上两种方法都会返回一个定时器ID
  1. 清除定时器 clearTimeout clearInterval 清除指定的定时器 清除后 这个定时器不管有没有执行过 都会停止执行

同步执行

执行任务 按照一定的次序执行 当这个事件没有执行结束后 不会执行下一个事件

异步执行

当事件执行的时机不固定时 浏览器会先执行后面的任务 当后面的事件执行完后 再返回来执行当前事件

  • JS常见异步执行
    • 事件函数都是异步执行
    • 定时器的回调函数也是异步执行
    • Ajax中的异步
    • 回调函数也是异步执行

浏览器如何实现异步机制

浏览器中有两个任务队列

  • 主线任务 存放当前需要同步执行的同步任务
  • 等待任务 不需要立刻执行的异步任务都放到等待任务队列中
  • 当主任务队列中的任务执行结束后,就去执行等待任务队列中的任务 必须等主线任务执行完成后 再执行等待队列的任务
  • 死循环就相当于主任务队列没有执行完

回调函数

函数A当做实参传递给函数B 在函数B执行时 需要A的地方时 把A执行 这种机制称为回调函数机制

  1. 特点
  • 回调函数可以执行多次
  • 可以传递实参
  • 可以改变回调函数中this的指向
  • 可以在宿主函数中 接收回调函数执行的返回结果
  1. 常见内置的回调函数
  • 定时器
  • sort方法
  • forEach方法
  • map方法