더북(TheBook)

3.2.1 블록 스코프와 함수 스코프

모든 변수는 스코프(scope, 범위)가 있습니다. var는 함수 스코프, let은 블록 스코프를 가집니다. 무슨 소리일까요? 다음 예제를 콘솔에서 실행하면 에러가 발생합니다.

function b() { 
  var a = 1;
}
console.log(a);
Uncaught ReferenceError: a is not defined

a는 함수 b() 안에 선언된 변수라서 함수 바깥에서는 접근할 수 없습니다. 이처럼 함수를 경계로 접근 가능 여부가 달라지는 것을 함수 스코프(함수만 신경 씀)라고 합니다. 함수 스코프를 다르게 말하면 함수가 끝날 때 함수 내부의 변수도 같이 사라진다고 할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.