30 同步和异步

本文详细解释了JavaScript中同步任务与异步任务的区别,涉及执行栈、主线程和任务队列的概念,以及定时器回调、事件体、Promise、MutationObserver等异步处理方式。特别关注了宏任务和微任务在实际应用中的分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 所有的任务分为两种,一种同步任务,一种是异步任务

  • 同步任务指的是,在主线程上排队执行任务,只有前一个任务执行完毕后,才执行后一个任务

    • 执行栈

  • 异步任务指的是不先进入主线程,而是进入任务队列的任务,只有等主线程任务执行完毕后,任务队列开始通知主线程,请求执行任务,然后任务才会进入主线程执行

  • 前提:所有代码在执行时,都要消耗执行时间,只有异步代码会消耗等待时间

  • 同步执行方式:同步代码执行时,必须按照顺序一步接一步执行

  • 注意事项:同步代码优先于异步代码,并且只有同步代码遵循自上而下的规则

  • 异步执行方式 :当遇到需要消耗等待时间代码时(异步代码),继续执行后面代码

  • 异步代码的分类:和消耗等待时间有关

    • 1.定时器的回调函数

    • 2.事件体

    • 3.发请求和响应

  • 异步任务分为微任务和宏任务

    • 宏任务包括:script(整块代码),stitimeout、setIntval、I\O、UI交互事件、se'tImmediate(node环境)

    • 微任务包括:new promise().then(回调)、MutationObserver(html5新特新)、Object.observe(已废弃)、process.nextTick(node环境) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值