- 什么是事件循环?
- 事件循环和宿主环境有关系吗?浏览器和node环境区别?
- 宏任务与微任务?
- 分析下面代码的执行顺序,能否解释为什么?
```javascript async function async1(){ console.log(‘async1 start’) await async2() console.log(‘async1 end’) } async function async2(){ console.log(‘async2’) } console.log(‘script start’) setTimeout(function(){ console.log(‘setTimeout0’) },0)new Promise((resolve, reject) => {
console.log(1);
setTimeout(() => {
console.log(2)
resolve(2);
}, 0);
console.log(3)
})
setTimeout(function(){ console.log(‘setTimeout3’) },3)
setImmediate(() => console.log(‘setImmediate’)); process.nextTick(() => console.log(‘nextTick’)); async1(); new Promise(function(resolve){ console.log(‘promise1’) resolve(); console.log(‘promise2’) }).then(function(){ console.log(‘promise3’) }) console.log(‘script end’)
```