위클리 페이퍼

렉시컬 스코프의 개념과 특성

rexondex 2025. 2. 17. 10:01

스코프 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

 

스코프 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

스코프는 컨텍스트는 값과 "표현식"이 "표현"되거나 참조 될 수 있는 현재 실행되는 컨텍스트를 의미합니다. 만약 변수 또는 표현식이 "해당 스코프"내에 있지 않다면, 사용할 수 없습니다. 스코

developer.mozilla.org

 


 

스코프 ?

 

값과 표현식이 "표현"되거나 참조 될 수 있는, 현재 실행되는 컨텍스트를 의미합니다.

 

만약, 변수 또는 표현식이 "해당 스코프"내에 있지 않다면 사용할 수 없습니다.

 

스코프는 또한 계층적인 구조를 가지기 때문에,

하위 스코프는 상위 스코프에 접근할 수 있지만 반대는 불가능합니다.

 

그리고 함수는 자바스크립트에서 클로저 역할을 하기 때문에 스코프를 생성하므로,

함수 내에 정의된 변수는 외부 함수나 다른 함수 내에서는 접근할 수 없습니다.

 


 

다양한 범위:

 

■전역 범위: 스크립트 모드에서 실행되는 모든 코드의 기본 범위

■ 모듈 범위: 모듈 모드에서 실행되는 코드의 범위

■ 함수 범위: function으로 생성된 범위

■ 블록 범위: 중괄호 쌍(블록)으로 생성된 범위입니다.

 

또한, `let` or `const` 로 선언된 변수는 추가 범위에 속할 수 있습니다.

 


 

함수는 범위를 생성합니다.

 

함수 내에서만 정의된 변수는

함수 외부나 다른 함수 내에서 접근할 수 없습니다.

 

 

다음 예는 유효하지 않습니다:

// 유효하지 않은 예시

function exampleFunction() {
  const x = "declared inside function"; // 변수 x는 안에서만 사용 가능합니다.
  console.log("Inside function");
  console.log(x);
}

console.log(x); // Causes error

 

 

그러나, 다음 코드는 변수가 함수 외부에서 선언되어 전역 변수가 되기 때문에 유효합니다:

// 유효한 코드

const x = "declared outside function";

exampleFunction();

function exampleFunction() {
  console.log("Inside function");
  console.log(x);
}

console.log("Outside function");
console.log(x);

 


 

그리고 var의 유효한 예시:

// var 유효한 예시

{
  var x = 1;
}
console.log(x); // 1

 

var는 블록 바깥에서 호출 가능했습니다.

 

 

유효하지 않은 const 예시:

// 유효하지 않은 예시

{
  const x = 1;
}
console.log(x); // ReferenceError: x is not defined

 

const는 블록 바깥에서 호출할 수 없었습니다.

 

스코프를 벗어났기 때문입니다.

 

 

 

자바스크립트의 더 정확한 정보는 아래 MDN Docs 문서를 참고해주세요.


스코프 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

 

스코프 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

스코프는 컨텍스트는 값과 "표현식"이 "표현"되거나 참조 될 수 있는 현재 실행되는 컨텍스트를 의미합니다. 만약 변수 또는 표현식이 "해당 스코프"내에 있지 않다면, 사용할 수 없습니다. 스코

developer.mozilla.org

MDN Docs를 참고해 작성된 게시글입니다.