let rspX = {
 rock : 1,
 scissors : 2,
 paper : 3,
}

let computerChoice = 'rock';

*computerChoice를 이용해 rspX객체의 값을 선택하는 방법은?

1. rspX.compterChoice // rspX['computetChoice']와 같다. 변수 값이 아닌 변수명이 대입된다
2. rspX[computetChoice]

setInterval vs setTimeout

setInterval은 밀리초를 간격으로 내부가 실행된다.
setTimeout은 밀리초 이후에 내부가 실행된다.

공통점은 밀리초만큼 기다려야 한다는 것이다.

(무한 while문 안에서 지속적으로 실행한다고 가정한다)
차이점은 setInterval의 경우 내부를 시작했던 시간을 기점으로 밀리초이후 다시 내부를 실행한다.
         또한, 주기적으로 영원히 실행한다... 
         setTimeout은 내부 함수 작동이 다 끝난 이후 밀리초만큼 쉰다음 다시 내부를 실행한다

setInterval

내부 시작을 기점으로 밀리초를 계산한다. 만약 func(1)이 100ms보다 오래걸려 지연된다면, func(1)가 끝난 이후 바로 func(2)가 실행된다.

setTimeout

내부 시작을 기점으로하는 setInterval과 달리 내부가 끝나고 난 이후부터 100ms를 대기한다. 따라서 아무리 func(1)이 오래걸리더라도, 전혀 상관이 없으며 단지 func(1)이 끝나기를 기다리고, 이후에 100ms를 대기한다.

출처

https://ko.javascript.info/settimeout-setinterval#tasks

clearInterval & clearTimeout

let 아이디 = setInterval(함수, 밀리초);
clearInterval(아이디);

let 아이디 = setTimeout(함수, 밀리초);
clearTimeout(아이디);

공통점은 따로 아이디를 설정하고 clear로 제거해야 한다.
차이점은 setTimeout의 경우 다시 멈추기 위해서는 다시 내부가 실행되기 이전에 clearTimeout을 해야한다.
이미 실행된 내부를 중간에 멈출 수 없기 때문이다.