一、哪些函数或执行方法是宏任务?
宏任务:setTimeout,setInterval,DOM事件,AJAX请求
二、哪些函数或执行方法是微任务?
微任务:Promise,async/await
三、同步代码&微任务&宏任务&DOM渲染执行的顺序如下:
同步代码 > 微任务 > DOM渲染 > 宏任务
四、代码测试示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<body>
<div id="box"></div>
<script>
const content = $('<p>这是内容</p>');
$('#box').append(content);
console.log(1);
setTimeout(() => {
console.log('2 setTimeout');
alert('2 setTimeout');
}, 0);
Promise.resolve().then(() => {
console.log('3 promise');
alert('3 promise');
})
console.log(4);
</script>
</body>
</html>
![](https://img.haomeiwen.com/i25349942/c0327af4f2f5ae47.png)
![](https://img.haomeiwen.com/i25349942/519126a8b4f79dd9.png)
![](https://img.haomeiwen.com/i25349942/4e58736d53dac10d.png)
网友评论