setTimeout 및 console.log 간 실행 선후 순서

setTimeout 및 console.log 간 실행 선후 순서


setTimeout 지연 시간은 0시입니다.


o2o:

    setTimeout(function(){
        console.log(2);
    },0);
    console.log(1);
    // :1,2

n2n:

    setTimeout(function(){
        console.log(4);
    },0);
    setTimeout(function(){
        console.log(5);
    },0);
    console.log(1);
    console.log(2);
    console.log(3);
    // :1,2,3,4,5

……


원인: 페이지에서 setTimeout에 의해 정의된 모든 작업이 같은 대기열에 놓여 순서대로 실행됩니다.이 대기열의 실행 시간은 함수 호출 창고가 실행될 때까지 기다려야 실행할 수 있습니다. 즉, 모든 실행 가능한 코드가 실행될 때까지 기다려야 set Timeout이 내부 작업을 수행하고 시간 지연 시간에 따라 긴 순서로 코드를 실행할 수 있습니다!

예제:

    setTimeout(function(){
        console.log(a);
    },0);
    var a = 1;
    console.log(b);
    var b = 2;
    var c = 3;
    var d = 4;
    var e = 5;
    function fx(c){
        console.log(c);
    }
    function fn(e,d){
        console.log(d);
        setTimeout(function(){
            console.log(e);
        },10);
    }
    setTimeout(function(){
        console.log(b);
    },20);
    fn(e,d);
    fx(c);

출력 순서:

    undefined
    4
    3
    1
    5
    2

원인:

1、console.log() setTimeout , b undefined;
2、 , fn fx , fn console.log , d 4;
3、 , fx console.log , c 3;
4、 setTimeout , 1,5,2。

좋은 웹페이지 즐겨찾기