시간 지연 함수와 간격 함수

1678 단어

지연 함수 setTimeout(function () {}, ms);

    clearTimeout(d);
    var d = setTimeout(function(){},ms);
  • setTimeout(function(){},0);
  •     var a = 1;
        setTimeout(function(){
            console.log('before:' + a);
            a = 2;
            console.log('after:' + a);
        },0);// 0, 
        a = 100;
        console.log(a);
    

    다음과 같습니다.
        var a = 1;
        a = 100;
        console.log(a);
        setTimeout(function(){
                console.log('before:' + a);
                a = 2;
                console.log('after:' + a);
            },0);// 
    
  • 주의해야 할 것은:
  •     for(var i = 0;i < 10;i ++){
            setTimeout(function(){
                console.log(i);
            },1000);
        }
        //  :10( 1s , )
    

    간격 함수 setInterval(function () {}, ms);

        clearInterval(d);
        var d = setInterval(function(){},ms);
    
  • 퀘스트 시퀀스, 코드를 실행하는 시간이 간격보다 많을 때
  •    setInterval(function(){
           ...// 1500ms
       },1000)
    

    이러한 상황이 발생하면 현재 코드가 실행되기를 기다리고 실행 대기 코드는 작업 시퀀스에 추가되며 현재 코드가 실행되면 즉시 실행됩니다.

    setTimeout과 setInterval의 차이점

  • setTimeout
  •    setTimeout(function(){
           ...// 1s
       },1000)
    

    총 시간 = 1s + 1000ms
  • setInterval
  •    setInterval(function(){
           ...// 500ms
       },1000)
    

    총 시간 = 500ms +(1000-500)ms.

    setTimeout을 사용하여 setInterval 시뮬레이션

        setTimeout(function(){
            setTimeout(arguments.callee,10)
        },10);
    

    그러나 이것은 실제로setInterval보다 시간이 좀 더 길다

    좋은 웹페이지 즐겨찾기