• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

선생님 질문있습니다~

22.06.14 13:03 작성 조회수 159

0

안녕하세요 선생님:) 4분 30초 주변 내용중에서 질문이 있습니다. 

스택에 

inner

outer

전역

이렇게 쌓이면 inner -> outer -> 전역 순으로 스택을 비운다고 이해하였습니다. (제일 마지막에 들어온게 제일 먼저 빠지고..)

제 생각에는 실행 순서가

inner에 있는 콘솔로그 실행 -> outer에 있는 콘솔로그 실행 -> 전역에 있는 콘솔로그 실행 순이어야 할 것 같은데 outer에 있는 콘솔로그가 제일먼저 출력되는것을 어떻게 이해하면 될까요?

스택이 비워지는 순서가 단순히 코드가 실행되는 순서가 아니기 때문인가요?

답변 1

답변을 작성해보세요.

1

제가 6월 한달간 사정상 한국에 있지 않았어서 답이 많이 늦었습니다.

'선언'과 '호출'을 잘 구분하셔야 해요.

1. 전역에서 outer 선언 (2번줄)
2. 전역에서 outer를 호출 (14번줄) -> 이 때 outer 실행컨텍스트가 스택에 쌓이면서 내부 실행.
3. outer의 console.log (3번줄) 실행
4. inner 선언 (5번줄)
5. inner 호출 (10번줄) -> 이 때 inner 실행컨텍스트가 스택에 쌓이면서 내부 실행.
6. inner의 console.log(6번줄) 실행

...

 

Ej Y님의 프로필

Ej Y

질문자

2022.07.06

답변 주셔서 감사합니다 선생님. 이해 되었습니다!