인프런 커뮤니티 질문&답변

강두희님의 프로필 이미지

작성한 질문수

자바스크립트 제대로 배워볼래?

clearInterval, setInterval 질문

해결된 질문

작성

·

310

1

 

 var i = 0;
      var fnc = setInterval(function () {
        if (i == 3) {
          clearInterval(fnc);
        }
        console.log("3초마다 프로그램 실행 - " + i);
        i++;
      }, 3000);

i가 3일 때 setInterval를 중단하기 위해 해당 코드를 작성했습니다.

i가 3일 경우에는 clearInterval에 의해 setInterval이 중단됐기 때문에

아래 console.log("3초마다 프로그램 실행 - " + i)도 실행되지 않아

콘솔창을 실행했을 때 "3초마다 프로그램 실행 - 2"까지만 나오고 멈출거라고 생각했는데,

"3초마다 프로그램 실행 - 3"이 나와 왜 그런지 질문 드립니다.

답변 1

1

개발자의 품격님의 프로필 이미지
개발자의 품격
지식공유자

이미 setInterval 함수가 실행되었기 때문에 당연히 콘솔에 찍히는게 맞습니다.

콘솔에 3을 찍지 않으려면, if문에서 clearInterval 한 후 바로 return; 코드를 추가하면 됩니다

강두희님의 프로필 이미지
강두희
질문자

답변 주셔서 감사합니다!