1. 스코프란?

모든 식별자(변수, 함수, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정되며, 이를 스코프라고 한다.

var x = 'global';

function foo() {
  var x = 'local';
	// foo 함수 스코프에 있는 x 참조
  console.log(x); // ①
}

foo();
// 전역 스코프에 있는 X 참조
console.log(x); // ②

Untitled

<aside> 💡 var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언이 허용되지만, let이나 const 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용하지 않는다.

</aside>

2. 스코프의 종류

Untitled

Untitled

2.1 전역 스코프

2.2 지역과 지역 스코프