2020
10-09
10-09
JS事件循环机制event loop宏任务微任务原理解析
首先看一段代码asyncfunction(){awaitf2()console.log('f1')}asyncfunctionf2(){console.log('f2')}console.log('正常1')f1()setTimeout(()=>{console.log('定时器')})console.log('正常2')正确的打印顺序应该是:正常1,f2,正常2,f1,定时器为什么会出现这样打印顺序呢首先javascript是一门单线程语言,在最新的HTML5中提出了Web-Worker,但javascript是单线程这一核心仍未改变。既然js是单线程,那就像...
继续阅读 >
1.单线程模型单线程模型指的是,JavaScript只能在一个线程上运行,也就是说只能同时指向一个任务,其他任务都必须在后面排队等待。注意:虽然JavaScript只在一个线程上运行,但并不代码JavaScript引擎只有一个线程。事实上,JavaScript引擎有多个线程,单个脚本只能在一个线程上运行(主线程),其他线程都是在后台配合。JavaScript为什么要采用单线程,而不是多线程?不想让浏览器变得复杂(避免复杂性),因为多线程需要共享资源...
本文实例讲述了javascript事件循环eventloop的简单模型解释与应用.分享给大家供大家参考,具体如下:js是单线程的,但是eventloop的出现,使得js拥有可以处理高并发的性能。那么怎么理解eventloop呢?网上百度一堆文章,什么heap,stack,microqueue,macroqueue,让初学者直接懵掉。这里采用很通俗的理解方式介绍下eventloop.eventloop顾名思义是事件循环,既然是循环,那循环的是什么呢?对于一个js文件,1,执行当前执行...