看代码
<script>
console.log('first script')
setTimeout(() => {
console.log('settimout');
}, 0);
</script>
<script>
console.log('second script')
</script>
输出是
first script
second script
settimout
我的理解是一个宏然后所有可用的微观。然后是第二个宏。
所以当 js 看到第一个脚本标签时,它会将脚本添加到宏队列中,然后将第一项(第一个脚本标签)出列并运行。在第一个脚本中,它会看到第一个日志,然后运行它。
然后它看到setTimeout
,它是宏,所以将它添加到宏队列中。
第一个标签完成。看看有没有微 不。然后运行第二个宏,即 setimout。
然后运行第二个脚本
所以我认为输出应该是
first script
settimout
second script
我哪里错了?
任何帮助表示赞赏