JS 패키지, 타이머

3588 단어
폐쇄 란 무엇 입 니까?무슨 소 용이 있 습 니까?
  • 패 킷 닫 기: 쉽게 말 하면 부모 함수 에서 내부 함 수 를 되 돌려 주 는 방법 으로 외부 역할 영역 에서 부모 함수 의 변 수 를 방문 하 는 방법 입 니 다.
  • 역할: 1. 외부 에서 함수 내부 에 접근 하 는 변수;2. 함수 가 실행 이 끝 난 후에 소각 되 지 않도록 변 수 를 메모리 에 저장 합 니 다.

  • setTimeout 0 이 무슨 소 용이 있 습 니까?
    setTimeout 의 함 수 를 작업 대기 열의 끝 에 놓 고 다른 문장 이 모두 실 행 될 때 까지 기 다 렸 다가 바로 실행 합 니 다.
    아래 코드 출력 은 얼마 입 니까?코드 를 수정 하여 i 를 출력 합 니 다.두 가지 이상 의 방법 을 사용 합 니 다 \ #
    var fnArr = [];
    for (var i = 0; i < 10; i ++) {
        fnArr[i] =  function(){
            return i;
        };
    }
    console.log( fnArr[3]() ); //10
    

    방법 1
        var fnArr = [];
        for (var i = 0; i < 10; i ++) {
          (function(val){
            fnArr[i] = function(){
                return val;
              }
          } )(i)
       }
       console.log( fnArr[3]() );//3
    

    방법 2
        var fnArr = [];
        for (var i = 0; i < 10; i ++) {
            fnArr[i] =  (function(){
              var val = i;
                return function (){
                  return val;
                }
            })();
        }
        console.log( fnArr[3]() );
    

    패 킷 을 사용 하여 자동차 대상 을 밀봉 하면 다음 과 같은 방식 으로 자동차 상 태 를 얻 을 수 있 습 니 다 \ # \ #
        var Car = //todo;
        Car.setSpeed(30);
        Car.getSpeed(); //30
        Car.accelerate();
        Car.getSpeed(); //40;
        Car.decelerate();
        Car.decelerate();
        Car.getSpeed(); //20
        Car.getStatus(); // 'running';
        Car.decelerate(); 
        Car.decelerate();
        Car.getStatus();  //'stop';
        //Car.speed;  //error
    
        var Car = (function(){
          var speed;
          return{
            setSpeed:function(val){
              speed = val;
            },
            getSpeed:function(){
              return speed;
            },
            accelerate:function(){
              speed += 10;
            },
            decelerate:function(){
              speed -= 10;
            },
            getStatus:function(){
              if (speed === 0) {
                return "stop";
              }
              else if (speed > 0) {
                return "running";
              }
            }
          }
        }());
    

    함 수 를 쓰 려 면 setTimeout 을 사용 하여 setInterval 의 기능 을 모 의 합 니 다 \ # \ #
    function setInterval(val) {
      setTimeout(function(){
            //todo something;
            setInterval(val);
        },val)
    }
    

    함 수 를 써 서 setTimeout 의 최소 시간 입 도 를 계산 합 니 다 \ # \ #
    function getTime() {
                var timeStar = Date.now();
                var i = 0;
                var clock = setTimeout(function(me){
                    i++;
                    if(i === 1000) {
                        clearTimeout(clock);
                        var timeEnd = Date.now();
                        console.log((timeEnd-timeStar)/i);
                    }
                    clock = setTimeout(arguments.callee,0);
                },0)
            }
    

    다음 코드 출력 결 과 는?왜?
        var a = 1;
        setTimeout(function(){
            a = 2;
            console.log(a);
        }, 0);
        var a ;
        console.log(a);
        a = 3;
        console.log(a);
    

    출력 결 과 는 1.32 입 니 다. setTimeout 0 의 함수 가 작업 대기 열 끝 에 있 기 때문에 다른 문장 이 모두 실 행 될 때 까지 기 다 렸 다가 바로 실 행 됩 니 다.
    다음 코드 출력 결 과 는?왜?
        var flag = true;
        setTimeout(function(){
            flag = false;
        },0)
        while(flag){}
        console.log(flag);
    

    출력 결과 없 음, while 계속 순환, 이유 동일
    다음 코드 출력 은?delayer: 0, delayer: 1 을 어떻게 출력 합 니까?
    for(var i=0;i<5;i++){
      (function(){
        var n = i ;
        setTimeout(function(){
             console.log('delayer:' + n );
        }, 0);
      })();
        console.log(i);
    }
    

    좋은 웹페이지 즐겨찾기