Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

23-3장 실행 컨텍스트 - 한수지 #977

Merged
merged 1 commit into from
Dec 11, 2023

Conversation

nincoding
Copy link
Contributor

👩‍🏫 23장 실행 컨텍스트 Quiz

📌 Q1. 다음 문제의 식별자 결정 과정을 설명해주세요.

let lamp = false;
function goTo2F() {
  let lamp = true;
  console.log(lamp);
  }
goTo2F():

A1. 답변

  1. 전역 실행 컨텍스트 생성:
    코드가 실행되면 가장 먼저 전역 실행 컨텍스트가 생성됩니다.
    여기에는 전역 변수와 함수가 등록됩니다.
    코드의 첫 부분에서 let lamp = false;에 의해 전역 변수 lamp가 선언되고,
    초기값으로 false가 할당됩니다.

  2. goTo2F 함수 실행 컨텍스트 생성:
    goTo2F() 함수가 호출되면 새로운 실행 컨텍스트가 생성됩니다.
    이 컨텍스트에는 함수 내부의 지역 변수와 함수 코드가 등록됩니다.
    함수의 내부에서 let lamp = true;에 의해 지역 변수 lamp가 선언되고,
    초기값으로 true가 할당됩니다.
    이 함수 실행 컨텍스트의 outer 렉시컬 환경에는 전역 실행 컨텍스트가 연결됩니다.

  3. console.log(lamp) 실행:
    함수 내에서 console.log(lamp);가 실행되면 변수 lamp를 찾기 시작합니다.
    먼저 현재 함수 내의 스코프에서 찾고, 지역 변수 lamp가 있으므로 이 값을 출력합니다.
    따라서 콘솔에는 true가 출력됩니다.

  4. goTo2F 함수 실행 컨텍스트 종료:
    함수의 실행이 끝나면 해당 함수의 실행 컨텍스트는 콜 스택에서 제거됩니다.

  5. 전역 실행 컨텍스트 종료:
    코드의 나머지 부분이 실행되고, 마지막으로 전역 실행 컨텍스트도 콜 스택에서 제거됩니다.


📌 Q2. 아래의 코드가 실행될 때 보기의 코드 실행 순서를 알맞게 나열해주세요.

const x = 1;

function foo() {
	const y = 2;
	function bar() {
		const z= 3;
		console.log(x + y + z);
	}
bar();
}

foo();
<보기>

-bar 함수 코드의 평가와 실행

-전역 코드로 복귀

-foo 함수 코드로 복귀

-foo함수 코드의 평가와 실행

-전역 코드의 평가와 실행

A2. 답변

  1. 전역 코드의 평가와 실행
  2. foo 함수 코드의 평가와 실행
  3. bar 함수 코드의 평가와 실행
  4. foo 함수 코드로 복귀
  5. 전역 코드로 복귀

📌 Q3. 출력되는 결과를 적어주세요.

let x = 10;

if (true) {
 let x = 1;
 console.log(x); // 1️⃣
}

console.log(x); // 2️⃣

A3. 답변

1️⃣ 1
2️⃣ 10


📌 Q4. 빈칸에 알맞은 정답을 채워주세요.

실행 컨텍스트 스택은 코드의 [ ] 를 관리하며, 렉시컬 환경은 [ ], [ ] 를 관리한다.

A4. 답변

실행 컨텍스트 스택은 코드의 [ 실행순서 ] 를 관리하며, 렉시컬 환경은 [ 스코프 ], [ 식별자 ] 를 관리한다.


🔗 issues

#933

@Ryan-Dia Ryan-Dia merged commit 714733c into Next-by-Next:main Dec 11, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants