그림 1-5에서 anonymous 함수는 처음 실행 시의 전역 콘텍스트(global context)를 의미합니다. 콘텍스트는 함수가 호출되었을 때 생성되는 환경을 의미합니다. 자바스크립트 코드는 실행 시 기본적으로 전역 콘텍스트 안에서 돌아간다고 생각하는 게 좋습니다. 함수는 실행되는 동안 호출 스택에 머물러 있다가 실행이 완료되면 호출 스택에서 지워집니다. third, second, first, anonymous 순으로 지워지고, anonymous 콘텍스트까지 실행이 모두 완료되었다면 호출 스택은 비어 있게 됩니다.
콘솔의 출력 결과는 다음과 같습니다.
콘솔
세 번째
두 번째
첫 번째
이번에는 특정 밀리초(1,000분의 1초) 이후에 코드를 실행하는 setTimeout을 사용하겠습니다. 콘솔에 어떤 로그가 기록될지 예측해보세요.
function run() { console.log('3초 후 실행'); } console.log('시작'); setTimeout(run, 3000); console.log('끝');
결과는 다음과 같습니다.