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

김영찬님의 프로필 이미지

작성한 질문수

인터랙티브 개발 실무 끝장내기 [역량 강화편]

타이머 및 연봉 계산기 - setInterval, clearInterval

clearInterval(timer) 관련 질문입니다.

22.02.02 16:07 작성

·

542

0

안녕하세요 강사님

질 높은 수업으로 늘 잘 듣고 있습니다.

하지만 수업 도중 clearInterval에 대해 의문점이 들어 질문을 남깁니다.

제가 이해한 바로는,

button을 클릭했을 시, interval이라는 함수가 실행되며

interaval() 함수에는 clearInterval이라는 setInterval을 멈출 수 있는 메서드가 존재합니다. 

그렇다면 button 클릭 -> interval() 함수 실행 -> clearInterval 메서드 실행 -> setInterval 실행 의 순서로 이해했는데, 여기서  if문이나 토글로 코드를 작성하지 않았는데 버튼을 다시 클릭하면 어떻게 다시 setInterval이 멈춰지는지 로직 구조가 이해가 안됩니다.

답변 1

0

코딩일레븐님의 프로필 이미지
코딩일레븐
지식공유자

2022. 02. 02. 23:17

안녕하세요. 

clearInterval(timer)는 일단 실행중인 timer를 없애는 역할을 하는 겁니다.

그리고 바로 timer = setInterval... 로 timer를 재실행 시켜주는 거죠.

그래서 버튼을 누르면 '정지'라기 보다는 timer 없애고 timer 다시 실행. 입니다.

timer가 하나만 존재하도록 하는겁니다.

.

button 클릭 -> interval() 함수 실행 -> clearInterval 메서드 실행(timer 없애) -> setInterval 실행 (timer 처음부터 다시 실행)

.

clearInterval(timer) 제거하고 테스트 해보세요.

버튼 누를때마다 timer가 계속 중첩이 될 겁니다.