JS 기초(가위바위보 게임)

peter.p·2021년 12월 30일
0

Javascript

목록 보기
8/23

setInterval 함수와 같은 효과를 내는 setTimeout을 구성해보기.

setInterval(() => {
	console.log('Hi there')
}, 1000);
function hi () {
  console.log('Hi there');
  setTimeout(hi, 1000)
}
setTimeout(hello, 1000);

위 둘의 차이는 setInterval은 시간을 제때 마추려고 하지만, setTimeout은 console.log가 끝나고 나서 실행되기 때문에 따라서 코드가 많으면 1초마다 실행되지 않을 수 있다.


setInterval 과 setTimeout을 중지시키는 법
setInterval 함수는 반환값이 있다. 반환값은 타이머에 대한 아이디(숫자)로, 나중에 이 값을 사용해 타이머를 제거할 수 있다. setTimeout 함수도 clearTimeout 함수로 취소할 수 있다. 단, setTimeout은 인수로 넣은 함수가 실행되기 전에 clearTimeout을 호출해야한다.

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

flag 변수.
참, 거짓에 따라 함수가 실행되게 할 것이냐, 안 되게 할 것이냐를 지정할 수 있다.

removeEventListner 대신 flag 변수를 쓰는 게 좋은 이유?
removeEventListener를 사용하려면 addEventListener의 have1와 removeEventListener의 have1이 같아야한다. 하지만 변수를 따로 지정하지않게 되면 둘은 아예 다른 것이기 때문에 이벤트 리스너를 멈춰주지 못한다.
그래서 이걸 이해하지 못한다면 flag 변수를 써서 코드를 짜는 게 낫다.

or(||) 줄이기.

diff === '에이' || diff === '비'|| diff === '씨' || diff === '디'

['에이', '비', '씨', '디'].includes(diff)
['에이', '비', '씨', '디'].indexOf(diff) > -1
profile
꼭 웹 퍼플리셔가 될거에요

0개의 댓글