더북(TheBook)

4. a, c, c, b, d, d

해설 호출 스택과 이벤트 루프의 작동 원리를 제대로 익히지 못했다면 정답을 보고도 왜 이렇게 실행되는지 알 수 없습니다. 가장 많이 나오는 오답은 a, c, d, c, b, d입니다. 왜 이것이 오답인지 호출 스택과 이벤트 루프로 분석하겠습니다. 소스 코드가 실행되면 anonymous() 함수가 호출 스택에 들어가고, 그 위에서 setTimeout()이 실행됩니다. setTimeout() 함수가 2개 호출되므로 타이머 2개가 백그라운드로 이동합니다. 0초 타이머라도 비동기 함수이므로 백그라운드로 넘어가는 것이 이 문제의 핵심입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.