비동기 실행 예제

Jnns·2023년 12월 24일
post-thumbnail
// 1번
let num = 1;

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

// 3번
num = 3;

// 4번
console.log(num);

이 코드의 흐름은 어떻게 될까?

  1. num이라는 변수를 선언하고, 값으로 1을 할당한다.
let num = 1;
  1. setTimeout 함수를 사용하여 비동기적으로 실행될 코드를 정의한다. 이 코드는 0초 뒤에 num 변수의 값을 2로 변경하는 함수를 실행한다. 그러나 setTimeout 함수가 시간 지연을 가진 비동기 함수이므로, 바로 실행되지 않고 현재 코드 실행 흐름과 독립적으로 실행된다. 따라서 num에 할당된 값은 아직 1이다.
setTimeout(() => {
  num = 2;
}, 0);
  1. num 변수에 값을 3으로 변경한다. 이 코드는 setTimeout 함수 이후에 동기적으로 실행된다.
num = 3;
  1. console.log(num)은 현재 실행 시점에서 num 변수에 할당된 값인 3을 출력한다.
console.log(num);
  1. 동기 실행이 모두 완료되면 비동기 함수가 실행되어 num에 2가 할당된다.
setTimeout(() => {
  num = 2;
}, 0);

0개의 댓글