JavaScript - 문제 미리보기
문제 702
hard
다음 코드의 실행 결과로 올바른 것은?
console.log("시작");
setTimeout(function() {
console.log("3초 후 실행");
}, 3000);
setTimeout(function() {
console.log("1초 후 실행");
}, 1000);
console.log("끝");
정답: C
이 코드는 JavaScript의 비동기 실행 순서를 보여주는 중요한 예제입니다.
실행 순서:
1) "시작" - 즉시 실행
2) 첫 번째
3) 두 번째
4) "끝" - 즉시 실행
5) 1초 후: "1초 후 실행"
6) 3초 후: "3초 후 실행"
실행 순서:
1) "시작" - 즉시 실행
2) 첫 번째
setTimeout
- 3초 후 실행되도록 예약 (즉시 반환)3) 두 번째
setTimeout
- 1초 후 실행되도록 예약 (즉시 반환)4) "끝" - 즉시 실행
5) 1초 후: "1초 후 실행"
6) 3초 후: "3초 후 실행"
setTimeout
은 비동기 함수이므로 코드의 실행을 멈추지 않고, 백그라운드에서 타이머를 설정한 후 즉시 다음 코드로 넘어갑니다. 따라서 동기 코드("시작", "끝")가 먼저 모두 실행되고, 그 후에 설정된 시간에 따라 비동기 콜백들이 실행됩니다.
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.