inflearn logo
강의

Course

Instructor

Core JavaScript

Variable Environment

332

sekyungkseoul3566

3 asked

1

Variable Environment는 컨텍스트가 실행될 때 값을 스냅샵을 찍어놓는다고 하셨는데요. 실행 컨텍스트에서는 Lexical Environment만 사용하는거 같은데.. Variable Environment는 어떤 경우에 사용이 되나요?

javascript

Answer 4

3

karajan6106524

with함수를 사용할 때(콘텍스트 확장) 사용되는것으로 알고 있습니다.

2

jaenam

@아기고양이 감사합니다!

1

dngwoodo6584

그저 순서상으로 EC 생성시 변수정보를 수집하여 Variable Environment를 만들고,
이후에는 그 복제품인 Lexical Environment를 사용한다 정도로 이해하시면 될 것 같습니다.

영상에서는 VE가 LE의 초기값을 스냅샷찍다고했는데 LE가 VE의 초기값을 복제하는건가요?

0

jaenam

제가 LE와 VE의 생성 순서를 중요하게 생각하지 않아서 그때그떄 표현방식에 따라 순서가 섞였던 것 같습니다.
혼란을 느끼셨다면 사죄드립니다.

공식문서를 보고 직접 이해하시는 편이 정확하겠죠.
https://262.ecma-international.org/12.0/#sec-execution-contexts

바로 아래쪽에는 이런 문구가 있습니다.

An execution context is purely a specification mechanism and need not correspond to any particular artefact of an ECMAScript implementation. It is impossible for ECMAScript code to directly access or observe an execution context.

아래에서 순서를 유추할 수는 있겠네요.
https://262.ecma-international.org/12.0/#sec-prepareforordinarycall

1

jaenam

저도 여러가지 문서를 찾아 읽어보았는데 명확하질 않았어요.
사용처에 대해서는 정확히 파악하기가 어렵네요.

그저 순서상으로 EC 생성시 변수정보를 수집하여 Variable Environment를 만들고,
이후에는 그 복제품인 Lexical Environment를 사용한다 정도로 이해하시면 될 것 같습니다.

여담으로 strict mode에서는 arguments의 값을 변경/삭제할 수 없게 되었습니다.
혹시 이것이 variable environment와 연관된 것은 아닐까 싶지만, 확실하진 않습니다.

나중에라도 답을 알게 되면 추가로 답변드릴게요.
혹 세경님께서도 알게 되시면 공유 부탁드려요!

인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유

0

59

1

setTimeout 에서 this

0

80

1

2강부터 영상이 나오지 않습니다.

0

174

1

자바스크립트 주석에 이상한 점이 있어서 문의드립니다.

0

218

2

return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.

1

259

1

클래스 static 멤버

1

252

1

실행컨텍스트와 스택프레임

2

566

1

프로토타입으로 상속할때 브릿지 사용 이유

0

320

1

호이스팅 관련 질문

1

335

1

책 66p. 예제 3-2 질문입니다.

0

356

1

강의 내용 10:58 캡슐화 질문입니다.

1

397

1

강의 내용 5:10 질문입니다.

1

422

2

전역 공간에서의 this

0

426

2

18:31 addEventListener의 this

1

479

1

outerEnvironmentReference 질문

1

372

1

실행 컨텍스트와 클로저에 대해 질문드립니다.

1

448

1

Object.prototype.constructor의 [[prototype]] ?

1

658

1

함수를 값으로 할당할 때

2

457

1

15:54 'ddd' 사라지는 오류?

4

375

1

프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.

1

404

1

기본형/가변형 질문입니당

0

331

0

선생님 그러면 섹션 0만 봐도 무방한가요!?

0

333

1

Hoisting과 environmentRecord에 관한 질문입니다.

1

289

1

안녕하세요, 데이터 변경 질문입니다.

0

324

1