setTimeout 안에 넣는 함수는 특정 동작(지정한 시간까지 기다리기) 이후에 추가로 실행되는 함수이므로 콜백 함수로 볼 수 있다.
setTimeout(() => {
// 내용
}, 밀리초);
참고
자바스크립트의 타이머는 정확하지 않다. 자바스크립트는 싱글 스레드 언어이기 때문에 동기 방식으로 구성되어 있어 기본적으로 한 번에 한 가지 일만 할 수 있다. 따라서 이미 많은 일을 하고 있다면 설정한 시간이 되어도 setTimeout에 지정된 작업이 수행되지 않는다. 기존에 하고 있던 일이 끝나야 setTimeout에 지정한 작업이 실행된다.
문제
3.5초 뒤에 다음 func 함수를 실행하게 하기
function func() {
console.log('hello');
}
정답
setTimeout(func, 3500);
아래와 같이 작성할 수도 있지만
setTimeout(() => {
func();
}, 3500);
위의 문제 같은 경우에는 내부 함수가 하나이고 인수가 없는 경우라서 이 경우에는 첫 번째 코드처럼 줄여 쓸 수 있다.
clearTimeout
setTimeout 함수 실행을 취소할 수 있는 함수이다. 단, setTimeout 함수에 인수로 넣은 함수가 실행되기 전에 clearTimeout을 호출해야 한다.
let 아이디 = setTimeout(함수, 밀리초); clearTimeout(아이디);