렉시컬 스코프

안지환·2024년 3월 4일
0

JavaScript

목록 보기
6/6
post-custom-banner

렉시컬 스코프는 자바스크립트 엔진에서 함수 호출 시 함수를 어디서 호출 했는지가 중요한 것이 아닌 함수 정의한 곳 위치에서 상위 스코프를 결정하는 것을 의미합니다.

예시로 innerFunc 함수 정의 위치에 따라 함수의 결과 값이 달라집니다.

const x = 1;

const outerFunc = () => {
  const x = 10;
  const innerFunc = () => {
    console.log(x); // 10
  };
  innerFunc();
};

outerFunc();

outerFuncinnerFunc 함수는 모두 전역 함수로 정의가 됩니다. 때문에 innerFunc 함수가 정의 된 위치에 따라 상위 스코프는 달라집니다.

const x = 1;

const outerFunc = () => {
  const x = 10;
  innerFunc();
};

const innerFunc = () => {
  console.log(x); // 1
};

outerFunc();

따라서 함수의 상위 스코프는 함수 정의 위치에 결정이 됩니다. 즉 렉시컬 환경의 외부 렉시컬 환경에 대한 참조에 저장할 참조값을 결정합니다.

profile
BackEnd Developer
post-custom-banner

0개의 댓글