스코프란?
모든 식별자(변수, 함수 등)는 자신이 선언된 위치에 의해 다른 코드가 자신을 참조할 수 있는 유효 범위가 결정되는 데 이를 스코프라고 한다.
전역 스코프
코드 전체에서 접근할 수 있는 가장 넓은 스코프다.
전역 스코프에서 선언된 변수는 코드의 어디에서나 사용할 수 있다.
var global = 10; // 전역 스코프 변수
function foo() {
console.log(global); // 전역 스코프 변수에 접근 가능
}
foo();
console.log(global); // 전역 스코프 변수에 접근 가능
지역 스코프
특정 함수나 블록 내에서 변수가 정의되고 사용될 수 있는 스코프다.
지역 스코프에서 선언된 변수는 해당 함수나 블록 내에서만 유효하며, 외부 스코프에서는 접근할 수 없다.
function foo() {
var local = 20; // 지역 스코프 변수
console.log(local); // 20 출력
}
foo();
console.log(local); // 에러: 지역 스코프 변수에 접근 불가
function bar() {
var local = 30; // 다른 함수 내에서 같은 이름의 변수 선언 가능
console.log(local); // 30 출력
}
bar();
지역 스코프의 유형으로 함수 레벨 스코프, 블록 레벨 스코프가 있다.
함수 레벨 스코프
함수 레벨 스코프는 변수가 함수 내에서 선언될 때 해당 변수가 그 함수 내에서만 유효한 범위를 가지는 것을 의미한다.
function foo() {
var x = 10; // 함수 스코프 변수
console.log(x); // 10 출력
}
foo();
console.log(x); // 에러: x는 함수 스코프에 속해 있음
블록 레벨 스코프
블록 레벨 스코프는 변수가 중괄호 ‘{}’로 둘러싸인 블록(if, for 등) 내에서 선언될 때 해당 변수가 그 블록 내에서만 유효한 범위를 가지는 것을 의미한다.
if (true) {
let y = 20; // 블록 스코프 변수
console.log(y); // 20 출력
}
console.log(y); // 에러: y는 블록 스코프에 속해 있음
'정리 > JavaScript' 카테고리의 다른 글
[JS] 실행 컨텍스트 (1) | 2024.11.07 |
---|---|
[JS] 이벤트 루프 (0) | 2024.10.25 |
[JS] JSON (0) | 2023.11.23 |
[JS] 단축 평가 (0) | 2023.11.10 |
[JS] var, let, const의 차이 (0) | 2023.11.05 |