Ⅱ. 스코프 (Scope)
1. 스코프
- 유효한 참조 범위
- 자바스크립트에는 함수 레벨 스코프(ex : var)와 블록 레벨 스코프(ex : let, const)가 존재
2. 함수 레벨 스코프 (Function-level scope)
- var 문은 함수 내부에 선언된 변수만 지역변수로 한정함
※ 지역변수 : 프로그램 내 변수가 선언된 영역만 접근 가능한 영역으로 취하는 변수
- 나머지 변수는 전부 전역변수로 간주
※ 전역변수 : 프로그램 내 모든 모듈들을 변수 선언의 유효한 영역으로 취하는 변수
- 다음 예제를 보면 abc 함수 내부에서 선언된 a 변수는 함수 내부에서만 참조 가능
- 외부에서 참조할 경우, 오류가 발생
console.clear(); // 콘솔창 초기화
function abc() {
var a = 10; // a를 선언
console.log(a); // a를 출력
}
abc(); // 10
console.log(a) // 오류 발생(a is not defined)
- if문, while문, for문 등 코드 블럭{ } 내부에서 var로 선언된 변수는 전역변수로 간주하여 블럭 외부에서도 참조 가능
console.clear(); // 콘솔창 초기화
if (true) {
var a = 10;
console.log(a); // 10
}
console.log(a); // 10
3. 블록 레벨 스코프 (block-lever scope)
- let, const는 함수 내부는 물론 if문, for문 같은 코드 블럭{ }에서 선언된 변수도 지역변수로 취급함
console.clear(); // 콘솔창 초기화
function abc() {
let a = 10;
console.log(a); // 10
}
console.log(a) // 오류 발생 (a is not defined)
if (true) {
let b = 10;
console.log(b); // 10
}
console.log(b); // 오류 발생 (b is not defined)
'Front-End Study > JavaScript' 카테고리의 다른 글
제어문 - 1. 조건문 (0) | 2022.10.24 |
---|---|
연산자 (0) | 2022.10.23 |
자료형 (0) | 2022.10.23 |
변수 - 1. 변수 및 변수선언 (0) | 2022.10.22 |
자바스크립트 (Javascript) (0) | 2022.10.22 |