JS Lexical Scope

Lexical Scope

Lexical Scope 는 정적 스코프 static scope 라고도 한다.

In simple terms, the lexical scope is the scope of a variable or function based on where it is defined in the source code.

간단히 말해서, lexical scope 는 변수나 함수가 소스코드에서 어디에 정의되었는지에 따라 결정된다.

Lexical Scope in JavaScript

쉽게 말해 함수가 어디에 정의되었는지에 따라서 함수가 접근할 수 있는 변수의 범위가 결정된다.

예제

var str = "ORIGINAL";

function changeValue() {
    var str = "CHANGED";
    printA();
}

function printA() {
    console.log(str);
}

changeValue(); // ORIGINAL
printA(); // ORIGINAL

위 코드를 잠시 생각해보면 changedValue() 에서는 CHANGED 를 출력할 것 같다. 이유는 printA 에서 str 을 찾을 때 호출한 함수에서 찾을 것 같기 때문이다.

그러나 Lexical Scope 에 의해서 printA 에서는 전역 변수 str 을 찾게 된다.


알고리즘 Lv2. [2024 카카오 윈터 인턴쉽] 도넛과 막대 그래프

도넛과 막대 그래프

Lv1. [2024 카카오 윈터 인턴쉽] 가장 많이 받은 선물

가장 많이 받은 선물

NCloud LB & SourcePipeline 구축하기
tech collection 서비스 성능 개선하기
Selenium 복권 구매 자동화 만들어보기
디자인 패턴
책 리뷰
블로그 챌린지