[JS] setTimeout 함수와 비동기 예제

이지수·2024년 2월 4일

Javascript

목록 보기
7/7
// 1번
let num = 1;

// 2번
setTimeout(() => {
  num = 2;
}, 0);

// 3번
num = 3;

// 4번
console.log(num);

이 코드를 실행하면 콘솔에는 '3'이 출력됩니다.
코드를 따라가 보자면,

  1. 변수 num이 1로 초기화됩니다.

  2. setTimeout 함수가 호출되어 비동기적으로 콜백 함수가 실행됩니다. 이 콜백 함수에서 변수 num이 2로 변경됩니다. 그러나 이 콜백 함수는 현재 실행 스택이 비어있을 때 실행됩니다. 현재 코드 블록이 실행 중이므로, 이 콜백 함수는 현재 코드 블록이 완전히 실행된 이후에 실행됩니다.

  3. 변수 num이 3으로 변경됩니다.

  4. console.log(num)이 실행되어 변수 num의 현재 값을 출력합니다. 현재 num의 값은 3이므로, 콘솔에는 3이 출력됩니다.



참고 자료

profile
심미주의 맥시멀리스트의 우당탕탕 프론트엔드 도전기

0개의 댓글