成长(10/2000)——面试题合集7

2021-06-14  本文已影响0人  Kiki_Q

事件循环机制event-loop

实战演练

1.
function fun1() {
    console.log(1);
}
function fun2() {
    console.log(2);
    fun1()
    console.log(3);
}
fun2();

//fun2进入调用栈 //返回2
//fun1进入调用栈 //返回1 //fun1弹出调用栈
//返回3 //fun2弹出调用栈

2.
function func1(){
    console.log(1);
}
function func2(){
    setTimeout( ()=>{
        console.log(2);
    },0)
    func1();
    console.log(3);
}
func2();
//func2进入调用栈 
//setTimeout进入调用栈 console.log(2);进入消息队列
//func1进入调用栈 //返回1 //func1弹出调用栈
//返回3 //func2弹出调用栈 //消息队列执行返回2

3.
let p = new Promise( resolve => {
    console.log(4);
    resolve(5);
})
function func1() {
    console.log(1);
}
function func2() {
    setTimeout( ()=>{
        console.log(2);
    },0)
    func1();
    console.log(3);
    p.then( resolve => {
        console.log(resolve);
    })
}
func2();
//调用栈中加入的微任务会立即执行 返回4
// func2进入调用栈
// setTimeout进入调用栈  console.log(2)进入消息队列
// func1进入调用栈 返回1 func1出栈
//返回3
//p的resolve值为5 返回5 func2出栈 setTimeout出栈
//消息队列执行 返回2
上一篇 下一篇

猜你喜欢

热点阅读