为什么引入事件循环?如何理解?
js是单线程的语言,需要把异步任务交给宿主浏览器执行,仿制js引擎堵塞
以下面的代码为例
异步的代码交给浏览器之后 进入队列中等待被调用:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- console.log(1)
- //js引擎执行
- console.log(2)
- //js引擎执行
- console.log(3)
- //js引擎执行
- setTimeout(()=>{
- console.log(4)
- //异步 交给浏览器执行 浏览器执行后 放入任务队列 两秒后调用任务队列的任务
- },2000)
- console.log(5)
- //js引擎
- </script>
- </body>
- </html>
宏任务,微任务?