javascript 执行顺序

本文介绍了JavaScript作为单线程语言如何处理同步和异步任务,强调了事件循环的概念。同步任务与异步任务分别在不同的执行场所,异步加载如图片避免阻塞主线程。当主线程执行栈为空时,通过eventTable和EventQueue进行事件调度,由monitoringprocess监控并调用合适的函数。这一机制确保了网页性能和用户体验。

javascript 执行顺序

1.同步的任务没有优先级之分,异步的有,先执行微任务,再执行宏任务。

一、javascript是一门单线程语言

既然js是一门单线程语言,js任务也要一个一个顺序执行,如果一个任务耗时过长,其它任务也必须等着。问题来了,如果再浏览网页的时候加载的超清图片加载的很慢,那岂不是网页一直要卡到图片加载完?所以就出现了同步任务和异步任务。

二、同步和异步

当我们打开网站时,网页渲染的过程就是一大堆同步任务,但是在加载视频或者其它大型的资源时就是用的异步加载。

用图来说明:
在这里插入图片描述

文字概况:

1、同步和异步的任务进入不同的场所。

2、当指定的事情完成时,event Table 的函数任务就会进入Event Queue。

3、主线程内的任务执行完毕为空就会调用Event Queue里面的函数。

4、上述过程会不断循环执行,这就是事件循环。

我们不禁要问了,那怎么知道主线程执行栈为空啊?

JS引擎中存在monitoring process进程,它会持续不断的检查主线程执行栈是否为空,一旦为空,就会去Event Queue那里检查是否有等待被调用的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值