JS事件循环机制练习题

题目一:

 setTimeout(() => {
        console.log(1)
      }, 20)

      console.log(2)

      setTimeout(() => {
        console.log(3)
      }, 10)

      console.log(4)

      for (let i = 0; i < 90000000; i++) {
        // do soming 80ms左右
      }

      console.log(5)

      setTimeout(() => {
        console.log(6)
      }, 8)

      console.log(7)

      setTimeout(() => {
        console.log(8)
      }, 15)

      console.log(9)

================================================================================

=========答案分割线==============================================================

=================================================================================

================================================================================

=================================================================================

输出顺序:2 4 5 7 9 3 1 6 8

 

 

 

题目二:

 async function async1() {
        console.log("async1 start")
        await async2()
        console.log("asyncl end")
      }

      async function async2() {
        console.log("async2")
      }

      console.log("script start")

      setTimeout(function () {
        console.log("setTimeout")
      }, 0)

      async1()

      new Promise(function (resolve) {
        console.log("promisel")
        resolve()
      }).then(function () {
        console.log("promise2")
      })
      console.log("script end")

================================================================================

=========答案分割线==============================================================

=================================================================================

================================================================================

=================================================================================

输出:scirpt start 

          async1 start

          async2 

          promise1 

          script end

          async1  end

          promise2

          setTimeout

 

题目三:

 let body =document.body;
      body.addEventListener('click', function (){
      Promise.resolve().then(()=>{
      console.log(1);
      });
      console.log(2);
      });

      body.addEventListener('click',function (){
      Promise.resolve().then(()=>{
      console.log(3);
      });
      console. log(4);
      });

================================================================================

=========答案分割线==============================================================

=================================================================================

================================================================================

=================================================================================

输出:2 1 4 3

posted @ 2022-08-11 15:34  Ynline  阅读(344)  评论(0)    收藏  举报