js

javascript setTimeout / setInterval

μœΆβ‰ 2022. 10. 31. 16:26

* setTimeout: 일정 μ‹œκ°„μ΄ μ§€λ‚œ ν›„ ν•¨μˆ˜ μ‹€ν–‰

-2개의 λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μŒ

fn: 일정 μ‹œκ°„μ΄ μ§€λ‚œ λ’€ μ‹€ν–‰ν•˜λŠ” ν•¨μˆ˜ / 3000: μ‹œκ°„(=3s)

function fn(){
  console.log(3)
}
setTimeout(fn,3000);

setTimeout(function(){
  console.log(3)
},3000);
//λ™μΌν•˜κ²Œ λ™μž‘

-μΈμˆ˜κ°€ ν•„μš”ν•  경우 μ‹œκ°„ 뒀에 , μΆ”κ°€ν•΄μ„œ 적으면 됨

-showName: ν•¨μˆ˜ / 3000: μ‹œκ°„ / 'Mike': 인수. ν•΄λ‹Ή ν•¨μˆ˜μ˜ 첫번째 인수둜 전달

function showName(name){
  console.log(name);
}
setTimeout(showName,3000,'Mike');

 β—Ž clearTimeout(tId): μ˜ˆμ •λœ μž‘μ—…μ„ μ—†μ• μ€Œ. setTimeout은 time Idλ₯Ό λ°˜ν™˜ν•˜λŠ”λ° 이것을 μ΄μš©ν•˜λ©΄ μŠ€μΌ€μ€„ μ·¨μ†Œ ν•  수 있음

3μ΄ˆκ°€ μ§€λ‚˜κΈ° 전에 clearTimeout이 μ‹€ν–‰λ˜μ–΄ 아무 일도 μΌμ–΄λ‚˜μ§€ μ•Šκ²Œ 됨.

function showName(name){
  console.log(name);
}
const tId = setTimeout(showName,3000,'Mike');
clearTimeout(tId);

 

* setInterval: 일정 μ‹œκ°„ κ°„κ²©μœΌλ‘œ ν•¨μˆ˜λ₯Ό 반볡

-setTimeoutκ³Ό μ‚¬μš©λ²•μ€ 동일. 3μ΄ˆλ§ˆλ‹€ Mikeκ°€ console에 찍힘

function showName(name){
  console.log(name);
}
const tId = setInterval(showName,3000,'Mike');

β—ŽclearInterval(tId); : 쀑간에 μ€‘λ‹¨ν•˜κ³  싢을 경우 μ‚¬μš©

 

- μ£Όμ˜μ‚¬ν•­: delay νƒ€μž„μ„ 0으둜 μ€˜λ„ μ‹€μ œ λ°”λ‘œ μ‹€ν–‰λ˜μ§€ μ•ŠμŒ

-> ν˜„μž¬ 싀행쀑인 μŠ€ν¬λ¦½νŠΈκ°€ μ’…λ£Œλœ μ΄ν›„μ˜ μŠ€μΌ€μ€„μΈ ν•¨μˆ˜λ₯Ό μ‹€ν–‰. 그리고 λΈŒλΌμš°μ €λŠ” 기본적으둜 4ms μ •λ„μ˜ κΈ°λ³Έ λŒ€κΈ°μ‹œκ°„μ΄ 있기 λ•Œλ¬Έμ— 0이라고 μ‹œκ°„μ„ 적어도 4ms ν˜Ήμ€ κ·Έ 이상이 걸릴 수 있음

setTimeout(function(){
  console.log(2)
},0); //2번째 μ‹€ν–‰
console.log(1); //1번째 μ‹€ν–‰

 

μ˜ˆμ‹œ) μœ μ €μ˜ 접속 μ‹œκ°„ ν‘œμ‹œ

1μ΄ˆμ— ν•œλ²ˆμ”© μ½˜μ†”μ°½μ— ν…μŠ€νŠΈ ν‘œμ‹œλ¨

let num = 0; //μ΄ˆκΈ°κ°’
function showTime() {
  console.log(`μ•ˆλ…•ν•˜μ„Έμš”. μ ‘μ†ν•˜μ‹ μ§€ ${num++}μ΄ˆκ°€ μ§€λ‚¬μŠ΅λ‹ˆλ‹€.`);
}

setInterval(showTime, 1000);

-5μ΄ˆκΉŒμ§€λ§Œ μ‹€ν–‰ν•˜κ³  싢은 경우

let num = 0; //μ΄ˆκΈ°κ°’
function showTime() {
  console.log(`μ•ˆλ…•ν•˜μ„Έμš”. μ ‘μ†ν•˜μ‹ μ§€ ${num++}μ΄ˆκ°€ μ§€λ‚¬μŠ΅λ‹ˆλ‹€.`);
  if(num >5){
  clearInterval(tId);
  }
}

const tId = setInterval(showTime, 1000);

 

 

---

μ›Ήλ””μžμΈκΈ°λŠ₯사 μ‹œν—˜μΉ  λ•Œ 이 ν•¨μˆ˜ μ‚¬μš©ν•œ 기얡이 λ‚˜λŠ”λ° 손코딩 λ©΄μ ‘μ—μ„œ λ‹€ 까먹고 κΈ΄μž₯ν•΄μ„œ 와μž₯μ°½,, 말아먹은 γ…Ž,, κ·Έ λ•ŒλŠ” μ–Όλ ˆλ²Œλ ˆ 자격증 합격을 μœ„ν•΄ κΈ‰ν•˜κ²Œ μ•”κΈ°ν•΄μ„œ νœ˜λ°œλλ‹€λ©΄ μ΄λ²ˆμ— μ œλŒ€λ‘œ μ•Œκ²Œλœκ±° κ°™μŒ! μ§„μ§œμΈμ§€λŠ” λ‚˜λ„ λͺ¨λ¦„,,