setTimeout, setInterval : 타이머를 생성할 수 있는 함수.
clearTimeout, clearInterval: 타이머를 제거할 수 있는 함수.
타이머 함수는 ECMAScript에 정의된 빌트인 함수가 아닌 브라우저 환경과 Node.js 환경에서의 전역 객체의 메서드이다. 즉 호스트 객체이다.
자바 스크립트 엔진은 싱글 스레드 이므로 타이머 함수는 비동기 방식으로 동작한다.
// 1초(1000ms) 후 타이머가 만료되면 콜백 함수가 호출된다.
setTimeout(() => console.log('Hi!'), 1000);
// 1초(1000ms) 후 타이머가 만료되면 콜백 함수가 호출된다.
// 이때 콜백 함수에 'Lee'가 인수로 전달된다.
setTimeout(name => console.log(`Hi! ${name}.`), 1000, 'Lee');
// 두 번째 인수(delay)를 생략하면 기본값 0이 지정된다.
setTimeout(() => console.log('Hello!'));
const timerId = setTimeout(() => console.log('Hi!'), 1000);
clearTimeout(timerId);
let count = 1;
const timeoutId = setInterval(() => {
console.log(count); // 1 2 3 4 5
if (count++ === 5) clearInterval(timeoutId);
}, 1000);