浅谈异步与同步

本文探讨了JavaScript中的同步和异步概念。同步执行意味着代码按顺序执行,而异步执行允许在等待某些操作完成时继续进行其他任务。由于JavaScript的单线程特性,它依赖Event Loop来处理任务队列。文章还提到了异步实现,如定时器、Ajax、Promise,并讨论了如何使用Promise解决回调地狱问题。
摘要由CSDN通过智能技术生成

首先我们要理解什么是同步和异步

同步:就是顺序执行的代码,调用这段代码我能直接获取到结果的就是同步

异步:就是稍后执行的代码,调用这段代码我可能没办法立即获取执行结果,需要通过别的操作才可以得到结果


但是JavaScript是以单线程的方式运行的,也就是同一时间只能进行一件事,试想一下,假如javascript是多线程的,如果线程1要删除一个DOM元素,节点2要让DOM元素运动起来并且显示,那么浏览器怎么知道你想要干什么,所以在诞生的时候选择了单线程

Runtime:


Javascript会将正在执行的任务放到栈(stack)中(特点:先进后出);(栈就是主线程)

Heap(堆)中保存着引用类型值,例如对象

Queue(队列) 任务队列由一系列待处理的任务组成,每个任务都有相对应的函数。当栈为空时则会从任务队列中取出一个任务处理。(特点:先进先出)

也就是说

在处理任务的时候,会先去处理主线程中的任务,然后等到主线程为空执行任务队列中的事件


那么说到这里必须说一说JS实现异步的一种机制:Event Loop (图片摘自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值