js如何实现异步

同步与异步:同步是指按照代码的书写顺序一行行的去执行,上一段代码执行完毕才能执行下一段代码

​ 异步可以理解为一种并行的处理方式,不必等待一个程序执行完就可以执行其他的任务

​ JavaScript需要异步是因为JavaScript是单线程运行的,JavaScript中常用的异步场景有定时器,Ajax请求,事件绑定。

Js是如何实现异步的:

​ Js先执行同步代码,将异步代码推入到任务队列中,js是单线程的,但又能实现异步的原因在于事件循环和任务队列体系

​ 事件循环js会创建一个类似于while(true)的循环,每执行一次循环体,就是去查看是否有待处理事件,如果有就取出相关事件及回调函数,放入执行栈中由主线程执行,待处理的事情会存储在一个任务队列中,也就是每次执行循环体会查看任务队列中是否有需要执行的任务

​ 任务队列:异步操作会将相关的回调添加到任务队列中

​ js 只有一个线程称之为主线程,而事件循环是主线程中执行栈中的代码执行完毕后才开始执行的,所以主线程中的代码执行时间过长会阻塞事件循环的执行,也就会阻塞异步操作的执行。

例如:

  for(var i=0;i<5;i++){
    

setTimeout((

你可能感兴趣的:(基础,javascript,javascript,前端)