Q&A

자바스크립트는 싱글스레드인데, 어떻게 비동기 처리가 가능한거지?

브라우저 내부를 살펴보자

스택

브라우저API

코드에 대한 깊은 이해

function main() {
  console.log('A');
  setTimeout(
    function display() { console.log('B'); }
  , 0);
  console.log('C');
}

main(); //A, C, B 순서로 출력

위 코드가 실행되면 어떤일이 펼쳐지는지 자세히 살펴보자.

  1. 먼저 main함수가 콜스택에 삽입된다.
  2. main함수가 실행되고 console.log('A'); 구문이 실행되어 콘솔에 A가 찍힌다.
  3. setTimeout함수가 실행되는데 이 함수는 브라우저에게 0초 뒤에 display() 콜백함수를 실행시켜달라는 명령이다.(자바스크립트 코어브라우저)