Super Kawaii Cute Cat Kaoani
본문 바로가기
💾 lecture/서버 구축 실습

함수 레벨 스코프 vs 블록 레벨 스코프

by wonee1 2025. 3. 27.
728x90

 

 

 

함수 레벨 스코프란? (Function-level scope)

  • 정의: 변수가 함수 안에서 선언되면 그 함수 전체에서 접근 가능한 스코프.
  • 대표 예시: var (JavaScript)
  • 자바스크립트에서 var 가 함수 레벨 스코프를 따른다 
  •  함수에서 선언된 것은 블록을 무시하고도 함수 안에서 사용될 수 있다
function example() {
  if (true) {
    var x = 10;
  }
  console.log(x); // 10 (접근 가능!)
}

 

 

 

  • var로 선언된 변수는 블록 {} 무시하고, 함수 전체에서 접근 가능하다
  • 이건 의도치 않게 버그를 유발할 수 있어서 위험할 수 있음.

 

 

 

 

 

블록 레벨 스코프 (Block-level scope)

  • 정의: 변수가 블록 안에서 선언되면, 그 블록 내부에서만 접근 가능.
  • 대표 예시: let, const (JavaScript), C, Java, Python 등 대부분의 언어
  • 자바스크립트에서 const,let이 블록 레벨 스코프를 따른다
  • 블록 안에서 선언된 것은 블록 안에서만 사용 될 수 있다. 

 

 

function example() {
  if (true) {
    let x = 10;
    const y = 20;
  }
  console.log(x); // ❌ 에러
  console.log(y); // ❌ 에러
}

 

  • {} 블록 내부에서만 유효하므로 스코프가 더 제한적이다.
  • 요즘은 블록 레벨 스코프를 사용하는 게 더 안전하고 추천됨.

 

 

 

 

 

 

728x90