美文网首页
3-2定时器是怎么工作的

3-2定时器是怎么工作的

作者: 大庆无疆 | 来源:发表于2019-03-10 13:13 被阅读0次
console.log('start');

setTimeout(function () {
    console.log('定时器')
}, 0);

console.log('end');

运行后发现,定时器是最后执行的,我们不是已经把执行时间变成0了吗,为什么还有延迟呢?
// 运行后发现,定时器是最后执行的,我们不是已经把执行时间变成0了吗,为什么还有延迟呢?
// 在执行定时器时,并没有立即执行定时器中的函数,而是放在 任务队列 中 
// 等 执行栈 中的代码都执行完后,再执行定时器中的函数

image.png
//----------------------------练习--------------------

console.log('start');

for (var i = 0; i < 3; i++) {
    setTimeout(function () {
        console.log(i);
    }, 0);
}
//for循环是在 执行栈 的代码,所以会先执行,创建定时器,执行完后i的值为3


console.log('end');
//此时会输出:start end 三个3;
//因为定时器中的函数会先放在 任务队列 中,所以等 执行栈 中的代码执行完才能执行
//执行栈 中的代码执行完后i=3,所以最后输出了三个3

//------如果我们想要输出0 1 2,而不是三个3,那该怎么办呢?可以使用闭合函数啦

console.log('start');

for (var i = 0; i < 3; i++) { 
    //将i当做参数传进来
    (function (i) {
        setTimeout(function () {
            console.log(i);
        }, 0);
    })(i);
}

console.log('end');

//此时输出:start end 0 1 2

相关文章

  • 3-2定时器是怎么工作的

  • 创建一个只在滑动模式下计时的定时器

    创建定时器 在NSTimer类中有几种创建定时器的方法: 要想让定时器真正的工作,需要把定时器加入到RunLoop...

  • 命题_第十三章_选择

    以下说法正确的是() ·A.定时器/计数器工作时要占用CPU时间和精力·B.定时器/计数器选择工作方式0时计数范围...

  • 减肥打卡3

    3-2

  • UCOS-III 软件计数器

    一.定时器的工作模式 定时器的实际分辨率是通过宏OS_CFG_TMR_TASK_RATE_HZ定义的<一般定义为1...

  • 6、驯服线程和定时器

    定时器和线程是如何工作的 JavaScript提供了两种方式,用于创建定时器以及两个相应的清除方法。这些方法都是w...

  • iOS中的几种timer比较

    工作需要,粗略了解了ios上的几种定时器。 NSTimer: 这个底层怎么定时我不清楚,应该是到了一定时...

  • 命题_第十三章_简答

    定时器工作在方式2时有何特点?适用于什么应用场合? 【答案】:定时器工作在方式2时是一个可自动装入时间常数初值的8...

  • 命题-第十三章-选择

    欲令AT89S51单片机的定时器/计数器的T0工作在定时器状态,方式1,软件启动,那么TMOD的值是( ...

  • 命题-第十三章-选择

    AT89S51单片机的定时器/计数器有两种工作模式,( )种工作方式,其中方式1为( )位定时器/计数...

网友评论

      本文标题:3-2定时器是怎么工作的

      本文链接:https://www.haomeiwen.com/subject/pmyupqtx.html