질문 16 · 실전 면접 답변
렉시컬 스코프와 스코프 체인은 이름을 어떻게 찾나요?
이렇게 답해 보세요 (핵심 답변)
렉시컬 스코프란 함수가 어디서 호출되었는지가 아니라 소스 코드의 어디서 정의되었는지에 따라 상위 스코프가 결정되는 규칙입니다. 함수 안에서 변수를 찾을 때는 먼저 현재 스코프의 환경을 확인하고, 찾는 이름이 없으면 함수가 정의된 바깥 스코프로 한 단계씩 거슬러 올라가며 탐색하는데 이 연결 구조를 스코프 체인이라고 합니다. 따라서 함수를 다른 곳으로 전달해 호출하더라도 그 함수가 참조하는 바깥 변수의 기준은 바뀌지 않습니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 안쪽 스코프에 바깥과 같은 이름의 변수를 선언하면 안쪽 변수가 바깥 변수를 가리는 섀도잉(shadowing)이 일어납니다.
- 함수가 정의될 때의 바깥 환경 연결을 기억하기 때문에 함수가 반환된 뒤에도 클로저가 동작할 수 있습니다.
면접에서 자주 하는 실수
변수 식별자를 찾는 스코프 체인과 객체의 프로퍼티를 찾는 프로토타입 체인은 탐색 대상과 메커니즘이 완전히 다릅니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 16번을 바탕으로 질문과 답변을 새로 정리했습니다.