변수가 어디까지 쓰일 수 있는지의 범위를 말한다
스코프는 모든 식별자(변수 이름, 함수 이름. 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조 할 수 있는 유효 범위가 결정된다.
이것을 스코프라 한다 즉 스코프는 식별자가 유효한 범위를 말한다
스코프의 종류는 전역과 지역으로 구분한다
구분 | 설명 | 스코프 | 변수 |
---|---|---|---|
전역 | 코드의 가장 바깥 영역 | 전역 스코프 | 전역 변수 |
지역 | 함수 몸체 내부 | 지역 스코프 | 지역 변수 |
블록 { } 안의 정의된 변수는 지역(Local) 변수 라고 한다
function local() {
return 'i am block';
}
{ } (block)
내부에서 변수가 정의되면
변수는 오로지 { } (block)
내부에서만 사용할 수 있다
block
은 중괄호{ }로 감싼 것을 block이라고 한다
" " is not defined 라는 에러는
변수가 아직 선언되지 않았을 때의 에러 메세지이다
let, const, var로 변수를 선언하고
위와 같은 에러 메세지가 출력된다면
-> 자바스크립트가 변수를 선언한 영역(block)에 접근할 수가 없었고
변수가 선언된 사실을 알지 못했기 때문이다
블록 { } 바깥에 정의된 변수는 전역(Global))변수 라고 한다
const color = 'red';
console.log(color); //red
function returnColor() {
console.log(color);//red
return color;
}
console.log(returnColor());//red
코드의 위치에 상관없이 접근이 가능하다