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장 실행 컨텍스트 - 강철원 #975

Merged
merged 1 commit into from
Dec 11, 2023

Conversation

Ryan-Dia
Copy link
Member

@Ryan-Dia Ryan-Dia commented Dec 11, 2023

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

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

A1.

  1. 전역 실행 컨텍스트가 콜스택에 쌓입니다.
  2. goTo2F 함수 실행 컨텍스트가 콜스택에 쌓입니다. 그리고 outer렉시컬 환경에 전역 실행 컨텍스트를 연결합니다.
  3. console.log(lamp) 로 넘어와서 lamp라는 변수를 내부 스코프먼저 찾습니다.
  4. 바로 내부 스코프에 존재하니 console에 출력하고 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. 빈칸에 알맞은 정답을 채워주세요.

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


📌 issues

#933

@Ryan-Dia Ryan-Dia merged commit 27754ec 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.

1 participant