less than 1 minute read

함수 스코프와 블록 스코프의 차이에 대해 알아보자.

함수 스코프 vs 블록 스코프

함수 스코프와 블록 스코프는 부분집합의 관계를 갖는다.

  • 공통점
    두 스코프 모두 중괄호{}를 이용해 접근 범위를 형성한다.

  • 차이점
    각 스코프에 var 키워드로 변수를 선언했을 때, 그 접근성에서 차이가 발생한다.

    만약 블록 스코프에 var 키워드로 변수를 선언할 경우, 어디서든 그 변수에 접근이 가능하다.

    그 이유는 블록 스코프가 let, const로 선언된 변수에만 유효하기 때문이다.

    반면 함수 스코프의 경우 변수에 어떠한 키워드를 사용하더라도 해당 함수 안에서만 사용이 가능하다.

아래의 코드를 확인해보자.

// 함수 스코프
function func(){
  var a = 1;
}
console.log(a);

// Expected Output:
// ReferenceError: a is not defined
// 블록 스코프
{
  var a = 1;
}
console.log(a);

// Expected Output:
// 1

Leave a comment