티스토리 뷰

Javascript

[Javascript] setTimeout / setInterval

Gentlemanjs 2022. 4. 15. 13:07

 

setTimeout()과 setInterval()은 둘 다 자바스크립트에서 시간간격을 주는 함수입니다. 같은 목적의 함수이기는 하지만 둘 사이에는 약간의 차이가 있습니다. 헷갈려서 정리해 두려 합니다.

setTimeout(function, delay)setInterval(function, delay)

delay 시간 후에 딱 한 번 실행. delay 시간 마다 반복해서 호출
반복을 위해서는 재귀적으로 호출 한번만 호출하면 반복실행이 되기 때문에 코드가 간결
반복을 종료 : clearTimeout(timeoutName) 반복을 종료 : clearInterval(intervalName)

setTimeout은 반복을 위해 함수를 재귀적으로 호출합니다. 따라서 함수 간의 딜레이가 정확하게 실행 될 수 있습니다. 하지만 setInterval의 경우 delay보다 함수의 실행 시간이 길거나 함수가 종료되기 전에 다른 setInterval이 호출될 경우엔 프로그래머가 지정한 것과 같은 딜레이를 볼 수 없을 수도 있습니다. setInterval은 실행중에 다른 setInterval이 호출되면 먼저 실행중이던 녀석을 큐에 넣어 대기시킵니다. 이 큐는 딱 하나의 interval만 들어갈 수 있고 따라서 함수가 끝까지 실행되지 못하고 종료될 수도 있습니다.

'Javascript' 카테고리의 다른 글

[Javascript] this 활용  (0) 2022.04.15
[Javascript] 콜백(callback)함수  (0) 2022.04.15
[Javascript] 펼침 연산자  (0) 2022.04.14
[Javascript] 템플릿 리터럴(Template literals)  (0) 2022.04.14
[Javascript] addEventListener()  (0) 2022.04.14
댓글
© 2018 webstoryboy