美文网首页
JavaScript的定时器

JavaScript的定时器

作者: 柏龙 | 来源:发表于2017-04-23 00:10 被阅读0次

    什么是定时器

    提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成。

    下面这段代码输出结果是? 为什么?

    var a = 1;
    setTimeout(function(){
        a = 2;
        console.log(a); // 2
    }, 0);
    var a ;
    console.log(a); // 1
    a = 3;
    console.log(a); // 3
    

    代码输出 1 3 2 ,因为定时器会在队列最后执行

    下面这段代码输出结果是? 为什么?

    var flag = true;
    setTimeout(function(){
        flag = false;
    },0)
    while(flag){}
    console.log(flag);
    

    由于定时器会在队列最后执行,本次测试中flag 传入的值为true,结果是一直在循环。while条件表达式,在每次循环前被求值。如果求值为真,就会被执行。如果求值为假,则跳出 while 循环执行后面的语句。

    下面这段代码输出?如何输出delayer: 0, delayer:1...(使用闭包来实现)

    for(var i=0;i<5;i++){
        setTimeout(function(){
             console.log('delayer:' + i ); // delayer:5
        }, 0);
        console.log(i); // 0 1 2 3 4
    }
    

    闭包实现:

    for(var i=0;i<5;i++){
        setTimeout((function(i){
            var j = i;
            return function(){
                console.log('delayer:' + j ); // delayer:0 delayer:1 delayer:2 delayer:3 delayer:4
            }
        })(i),0);
        console.log(i); // 0 1 2 3 4
    }
    

    相关文章

      网友评论

          本文标题:JavaScript的定时器

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