작성
·
206
1
Variable Environment는 컨텍스트가 실행될 때 값을 스냅샵을 찍어놓는다고 하셨는데요. 실행 컨텍스트에서는 Lexical Environment만 사용하는거 같은데.. Variable Environment는 어떤 경우에 사용이 되나요?
답변 4
3
2
1
그저 순서상으로 EC 생성시 변수정보를 수집하여 Variable Environment를 만들고,
이후에는 그 복제품인 Lexical Environment를 사용한다 정도로 이해하시면 될 것 같습니다.
영상에서는 VE가 LE의 초기값을 스냅샷찍다고했는데 LE가 VE의 초기값을 복제하는건가요?
1
저도 여러가지 문서를 찾아 읽어보았는데 명확하질 않았어요.
사용처에 대해서는 정확히 파악하기가 어렵네요.
그저 순서상으로 EC 생성시 변수정보를 수집하여 Variable Environment를 만들고,
이후에는 그 복제품인 Lexical Environment를 사용한다 정도로 이해하시면 될 것 같습니다.
여담으로 strict mode에서는 arguments의 값을 변경/삭제할 수 없게 되었습니다.
혹시 이것이 variable environment와 연관된 것은 아닐까 싶지만, 확실하진 않습니다.
나중에라도 답을 알게 되면 추가로 답변드릴게요.
혹 세경님께서도 알게 되시면 공유 부탁드려요!
제가 LE와 VE의 생성 순서를 중요하게 생각하지 않아서 그때그떄 표현방식에 따라 순서가 섞였던 것 같습니다.
혼란을 느끼셨다면 사죄드립니다.
공식문서를 보고 직접 이해하시는 편이 정확하겠죠.
https://262.ecma-international.org/12.0/#sec-execution-contexts
바로 아래쪽에는 이런 문구가 있습니다.
아래에서 순서를 유추할 수는 있겠네요.
https://262.ecma-international.org/12.0/#sec-prepareforordinarycall