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장 실행 컨텍스트 - 심채윤 #974

Merged
merged 1 commit into from
Dec 11, 2023
Merged

23-3장 실행 컨텍스트 - 심채윤 #974

merged 1 commit into from
Dec 11, 2023

Conversation

chaeyun-sim
Copy link
Contributor

@chaeyun-sim chaeyun-sim commented Dec 11, 2023

📚 23장 실행 컨택스트

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

let lamp = false;

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

goTo2F():

전역 실행 컨텍스트가 실행 중인 실행 컨텍스트가 될 때, 전역 렉시컬 환경에서 식별자를 검색한다.
lamp와 goTo2F에 값을 바인딩한다.
전역 범위에서 lamp 변수가 선언되고 false가 할당된다.
goTo2F 함수 실행 컨텍스트가 생성 및 실행된다.
goTo2F 함수 환경에서 식별자를 검색, 지역 변수 lamp에 true가 할당된다.
console 식별자를 검색하고 log 메서드를 검색한 뒤 lamp를 참조하여 console.log를 호출한다.

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

const x = 1;

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

  bar();
}

foo();
 <보기>

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

-전역 코드로 복귀

-foo 함수 코드로 복귀

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

-전역 코드의 평가와 실행

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️⃣

1
10

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

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

실행 순서

스코프
식별자

Reference: #933

@Ryan-Dia Ryan-Dia merged commit b7e2258 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