본문 바로가기

개발이야기/웹개발

[코드잇 스프린트 풀스택 4기] 렉시컬 스코프(Lexical Scope)

반응형

렉시컬 스코프란

함수가 실행될 때가 아닌 선언될 때를 기준으로 스코프가 결정된다는 것.

 

  1. 스코프 결정 시점: 함수가 정의된 위치를 기준으로 스코프가 결정
  2. 스코프 체인: 함수 내부에서 변수를 참조할 때, 먼저 내부 스코프에서 변수를 찾고, 없으면 외부 스코프로 이동하여 변수를 찾음. 이러한 과정을 스코프 체인이라고 함
  3. 상위 스코프 참조: 내부 함수는 자신이 정의된 외부 환경(상위 스코프)을 참조할 수 있음. 이를 통해 함수가 호출되는 위치와 상관없이 일관된 스코프를 유지

 

const outerVar = 'I am outside!';

function outerFunction() {
    const innerVar = 'I am inside!';

    function innerFunction() {
        console.log(outerVar); // 'I am outside!'
        console.log(innerVar); // 'I am inside!'
    }

    innerFunction();
}

outerFunction();

 

위 코드에서 innerFunction은 outerVar와 innerVar 변수를 모두 참조할 수 있는데 이는 innerFunction이 outerFunction 내부에서 정의되었기 때문에, innerFunction은 outerFunction의 스코프를 참조할 수 있기 때문임.

반응형