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장] 실행 컨텍스트 #19

Merged
9 commits merged into from
Jul 28, 2023
Merged

[23장] 실행 컨텍스트 #19

9 commits merged into from
Jul 28, 2023

Conversation

ghost
Copy link

@ghost ghost commented Jul 18, 2023

[23장] 실행 컨텍스트 #18

이슈번호를 눌러서 해당 챕터의 퀴즈들을 확인하고 코멘트로 퀴즈 답을 작성해주세요!

@ghost ghost changed the title Gunwoo [23장] 실행 컨텍스트 Jul 18, 2023
@hyoribogo
Copy link
Member

혜수님 문제

출력 결과:
Dog!
Human!
Cat!

실행 컨텍스트 스택

[]
[Global E.C.]
[Global E.C., cat E.C.]
[Global E.C., cat E.C., dog E.C.]
[Global E.C., cat E.C., dog E.C., love E.C.]
[Global E.C., cat E.C., dog E.C.]
[Global E.C., cat E.C.]
[Global E.C.]
[]


승희님 문제

  1. BLOCK L.E.
  2. Global L.E.
  3. null
  4. 10
  5. 1

영준님 문제

출력 결과:
남은 강의는 6개 입니다.
수강한 강의는 3개 입니다.

실행 컨택스트 개수: 4개


주연님 문제

  1. O
  2. X
  3. O

종현님 문제

  1. X
  2. O
  3. X

@dudwns
Copy link
Member

dudwns commented Jul 19, 2023

혜수님 퀴즈

  1. 출력 결과
    Dog!
    Human!
    Cat!

  2. 실행 컨텍스트 스택 구조
    1.Global 실행 컨텍스트 생성
    2. Cat 실행 컨텍스트 생성
    3. Dog 실행 컨텍스트 생성
    4. love 실행 컨텍스트 생성
    5. love 실행 컨텍스트 제거
    6. Dog 실행 컨텍스트 제거
    7. Cat 실행 컨텍스트 제거
    8. Global 실행 컨텍스트 제거


승희님 퀴즈

  1. BLOCK Lexical Environment
  2. Global Lexical Environment
  3. null
  4. 10
  5. 1

주연님 퀴즈

  1. O
  2. X
  3. O

종현님 퀴즈

  1. X
  2. O
  3. O

효리님 퀴즈

var로 선언한 변수는 평가할 때 객체 환경 레코드에 저장되고 값은 undefined로 초기화 된다. 따라서 참조할 수 있다.

let, const로 선언한 변수는 평가할 때 선언적 환경 레코드에 저장된다. 따라서 TDZ에 빠지게 되어서 초기화된 값이 없으므로 참조할 수 없다.

@ghost
Copy link
Author

ghost commented Jul 19, 2023

혜수님

stack = [], [전역], [전역, cat], [전역, cat, dog], [전역, cat, dog, love], [전역, cat, dog], [전역, cat], [전역], []
출력 : Dog! Human! Cat!


승희님

  1. Block Lexical Env
  2. Global Lexical Env
  3. Null
  4. 10
  5. 1

영준님

남은 강의는 6개 입니다. / 수강한 강의는 3개 입니다.
실행컨텍스틑 4개


주연님

  1. O
  2. X
  3. O

종현님

  1. X
  2. O
  3. O

효리님

환경 레코드에서 let, const 키워드는 등록이 될때 선언 단계와 초기화 단계가 분리되고 선언 단계가 끝나면 일시적 사각지대에
빠지게 되어 참조 불가능한 상태가 되지만 var 키워드는 선언 단계와 초기화 단계가 동시에 진행되고 초기화 단계에서 undefined로 초기화되기 때문에 참조가 가능합니다.

@suehdn
Copy link
Collaborator

suehdn commented Jul 19, 2023

승희님

  1. Block Lexical Environment
  2. Global Lexical Environment
  3. null
  4. 10
  5. 1

영준님
남은 강의는 6개 입니다
수강한 강의는 3개 입니다.

4개


주연님
O
X
O

종현님
X
O
O

효리님
var는 BindingObject에 의해 객체 환경 레코드에 저장되어 선언과 동시에 초기화가 되고
let, const는 선언적 환경 레코드에 저장되는데 선언한 뒤 런타임에서 초기화가 될 때 까지 TDZ에 있다.

@eeseung
Copy link
Collaborator

eeseung commented Jul 19, 2023

혜수님 퀴즈
출력 결과:

Dog!
Human!
Cat!

실행 컨텍스트 스택:
stack = []
stack = [전역]
stack = [전역, cat]
stack = [전역, cat, dog]
stack = [전역, cat, dog, love]
stack = [전역, cat, dog]
stack = [전역, cat]
stack = [전역]
stack = []

영준님 퀴즈
출력 결과:

남은 강의는 6개 입니다.
수강한 강의는 3개 입니다.

실행 컨텍스트 생성: 4개

주연님 퀴즈

  1. O
  2. X
  3. O

종현님 퀴즈

  1. X
  2. O
  3. O -> X 함수 표현식, 화살표 함수로 정의한 전역 함수는 전역 객체의 메서드로 등록되지 않는다.

효리님 퀴즈
let과 const로 선언한 변수는 선언적 환경 레코드에 존재하기 때문, 초기화 되지 않고 TDZ에 들어가서 선언문 이전에 참조할 수 없다.

@juyeon-park
Copy link
Member

혜수님 문제

<출력결과>
Dog!
Human!
Cat!

<stack 순서>
[ ] -> [전역] -> [전역, cat] -> [전역, cat, dog] -> [전역, cat, dog, love] -> [전역, cat, dog] -> [전역, cat] -> [전역] ->[ ]

승희님 문제

  1. 블록 렉시컬 환경
  2. 전역 렉시컬 환경
  3. null
  4. 10
  5. 1

영준님 문제

<출력 결과>
남은 강의는 6개 입니다.
수강한 강의는 3개 입니다.

실행 컨텍스트 4개 - 전역, lecture, reaminLecture, listenLecture

종현님 문제

X
O
X

효리님 문제

객체 환경 레코드에서 var키워드는 BindingObject에 의해 암묵적으로 undefined로 바인딩 되어 선언문 이전에 참조할 수 있지만 let, const 키워드는 선언적 환경 레코드에서 초기화가 이루어지지 않아 일시적 사각지대에 빠져 참조에러가 발생한다.

@jonghyunlee95
Copy link
Collaborator

혜수님 문제

  1. dog -> human -> cat
  2. []
    [전역]
    [전역, cat함수]
    [전역, cat함수, dog함수]
    [전역, cat함수, dog함수, love함수]
    [전역, cat함수, dog함수]
    [전역, cat함수]
    [전역]
    []

승희님 문제

  1. Block Lexical Environment
  2. Global Lexical Environment
  3. null
  4. 10
  5. 1

영준님 문제

  1. 남은 강의는 6개 입니다
  2. 수강한 강의는 3개입니다
  3. 3개

주연님 문제

  1. O
  2. X
  3. O

효리님 문제

let과 const는 선언적 환경 레코드에서만 처리되어 초기화가 되지않기 때문에
TDZ에 빠져 선언문 이전에 참조할 수 없다

@ghost ghost merged commit 24c160b into main Jul 28, 2023
@ghost ghost self-assigned this Aug 6, 2023
This pull request was closed.
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.

6 participants