티스토리 뷰
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