✍️ setTimeout, setInterval 공부하다가 재귀 호출에 관한 부분이 흥미로워 글로 정리해보았다. 더불어 setInterval을 이용한 스톱워치도 구현해 보았다.
setTimeout(code, delay)
⚠️ code로 함수를 넘길 때 함수 뒤에 () 를 붙이면 안 됨.
➡️ 함수를 실행 시키는 뜻이 되어 함수 결과가 넘어 감.
함수 실행에 대한 스케줄링을 주려고 한다면 ()를 붙이지 않은 함수 자체를 넘겨야 함.
clearTimeout(timeoutID)
function Hello (){
alert('hello!')
}
setTimeout(Hello,2000); // 2초 뒤에 Hello 함수 실행
let timeoutID = setTimeout(Hello, 3000);
clearTimeout(timeoutID); // 3초 뒤의 Hello 함수는 실행 안됨.
setInterval(code, delay)
clearInterval(intervalID)
function Hello (){
console.log('hello!')
}
let intervalID = setInterval(Hello, 2000); // 2초 마다 Hello 함수 실행
setTimeout(()=>{clearInterval(intervalID); }, 5000); // 5초 뒤에 setInterval 해제
// 결과: 'hello!' 는 2번 찍힘.
// 2초마다 Hello! 실행
let timerId = setTimeout(function Hello() {
~~~~~~~~~~~~~~~~~~~~~~console.log~~~~~~~~~~~~~~~~~~~~~~('Hello!');
timerId = setTimeout(Hello, 2000);
}, 2000);
// 중지
clearTimeout(timerId);