JavaScript的同步异步和事件循环

这篇博客探讨了JavaScript中的同步和异步概念,强调JS作为单线程语言如何处理耗时操作。事件循环机制被详细阐述,包括同步代码的执行、异步任务的处理流程,以及宏任务和微任务的区别。通过代码示例展示了同步、异步任务以及微任务、宏任务的执行顺序。
摘要由CSDN通过智能技术生成

一、什么是同步异步?

    1.同步:可以理解为做事情有自己的顺序(或者比喻成自己列的一个完成事情的清单),这件事做了才能做下一件事情.就像走路一样,左脚迈了才能迈右脚

    2. 异步:与上述相反,不按清单顺序来,可以这件事完成后甚至是一半回头来做上一件事情

二、.JS的同步异步

     1.JS是单线程语言,只能同时做一件事;由于dom渲染,网络请求等比较耗时,同步会阻塞代码执行,需要异步,js异步任务是以回调callback形式执行调用的.

     2.在JS中,总是先把同步代码执行完,再去执行异步代码

三、什么是事件循环(event loop)?

    1.事件循环其实就是说的js同步异步代码的执行机制:                

       1)从前到后,一行一行执行

       2)如果某一行执行报错,则停止下面代码的执行

       3)先把同步代码执行完,再执行异步

     2.event loop具体执行过程

        1)同步代码 ,一行一行执行

        2)遇到异步,会先记录下,等待时机(定时、网络请求等)

        3)时机到了,就移动到callback queue

        4)如call stack为空(即同步代码执行完)event loop开始工作

        5)轮询查找callback queue,如有则移动到call stack执行

        6)然后继续轮询查找

四、宏任务与微任务

    1.JS异步代码中,又分为宏任务与微任务

    2.宏任务:setTimeout,setInterval,Ajax,DOM事件等

       微任务:Promise async/a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值