Javascript는 동기 언어입니다.

자바스크립트는 한 줄 실행하고 또 다음 줄 실행하는 동기 언어입니다.

하지만 생각해보면 콜백 함수를 실행하는 비동기 코드를 자주 사용했습니다.

이것은 어떻게 된 걸까요?

setTimeout(() => {
  console.log(1);
}, 1000);
console.log(2);

// 2
// 1

<aside> 💡 비동기 코드를 작성하기 위해서 자바스크립트 이외의 도움을 받습니다!

</aside>

위에 setTimeout도 보면 사실 자바스크립트의 부분이 아닙니다.

브라우저에서 사용을 한다면 브라우저 api를 사용하는 것이며 (window object),

Node 에서 사용한다면 Node api를 사용하는 것입니다 (global object).

Untitled

<aside> 💡 결국, 자바스크립트는 비동기처럼 사용할 수 있지만, 결국은 다른 것의 도움을 받아서 비동기처럼 사용할 수 있습니다.

</aside>