setTimeout

function sayHi(phrase, who) {
  alert( phrase + ', ' + who);  
}
setTimeout(sayHi, 1000, "Hello", "John");
//setTimeout(sayHi(), 1000);      //sayHi()가 실행되면 undefined가 리턴됨. 잘못됨!!
let timerId = setTimeout(() => alert("never happens"), 1000);
clearTimeout(timerId);

setInterval

// 2초마다 반복
let timerId = setInterval(() => alert('tick'), 2000);

// 5초 후에 정지
setTimeout(() => { clearInterval(timerId); alert('stop'); }, 5000);

재귀 setTimeout

let timerId = setTimeout(function tick() {
  alert('tick');
  timerId = setTimeout(tick, 2000);
	/*
		...code
	*/
}, 2000);