<<^^>>努力不一定有回报,不努力一定没有回报。

信息展示

昵称:aliveto 邮箱:some_body@foxmail.com

setTimeout 的诡异事件

一:setTimeout 零秒的延迟


   console.log('1')

   let time = setTimeout(() => {
       console.log('setTimeout')
}, 0)

   console.log('2')
   
   //结果: 1 2 setTimeout

—-上面的结果都烂大街啦,因为浏览器事件的轮询,在js引擎为单线程的情况下,异步的代码总时在同步任务执行完后,在执行,就算定时器时间设置为0,也是有延迟的(延迟的时间主要有当前同步队列里的任务执行的时间。)

二:setTimeout 的参数

见码:


    function sum (a, b){
     console.log(a + b)
}
    setTiemout(sum, 1000, 3, 4)

    //结果:7
   
   // setTimeout() 第三个参数以及后面的参数,当做回调函数的参数