JavaScript에서 스코프(scope)는 변수가 어디서 접근 가능한지를 정의합니다. JavaScript에는 주로 두 가지 유형의 스코프가 있습니다: 전역 스코프(global scope)와 지역 스코프(local scope).
1. 전역 스코프(Global Scope):
전역 스코프에 선언된 변수는 코드의 어디에서나 접근 가능합니다.
var globalVar = "I'm global!";
function testScope() {
console.log(globalVar); // 출력: "I'm global!"
}
testScope();
console.log(globalVar); // 출력: "I'm global!"
2. 지역 스코프(Local Scope):
지역 스코프는 특정 코드 블록(예: 함수) 내에서만 변수에 접근할 수 있게 합니다.
function testScope() {
var localVar = "I'm local!";
console.log(localVar); // 출력: "I'm local!"
}
testScope();
console.log(localVar); // ReferenceError: localVar is not defined
블록 스코프(Block Scope):
let과 const 키워드를 사용하여 선언된 변수는 블록 스코프를 가집니다. 이는 해당 변수가 선언된 블록(중괄호 {}로 둘러싸인 영역) 내에서만 접근 가능하다는 것을 의미합니다.
if (true) {
let blockVar = "I'm in a block!";
console.log(blockVar); // 출력: "I'm in a block!"
}
console.log(blockVar); // ReferenceError: blockVar is not defined
클로저(Closure):
클로저는 내부 함수가 외부 함수의 변수에 접근할 수 있는 JavaScript의 특성입니다. 이로 인해 내부 함수는 외부 함수의 실행이 끝난 후에도 해당 변수에 접근할 수 있습니다.
function outer() {
var outerVar = "I'm in outer function!";
function inner() {
console.log(outerVar); // 출력: "I'm in outer function!"
}
return inner;
}
var innerFunc = outer();
innerFunc(); // 출력: "I'm in outer function!"
요약:
전역 변수: 어디에서나 접근 가능
지역 변수: 선언된 함수 또는 블록 내에서만 접근 가능
클로저: 내부 함수가 외부 함수의 변수를 "기억"
'JavaScript' 카테고리의 다른 글
JavaScript use strict(strict mode) (0) | 2023.08.23 |
---|---|
JavaScript 호이스팅(hoisting) (0) | 2023.08.23 |
JavaScript 오류 처리 (0) | 2023.08.23 |
JavaScript 정규 표현식 (0) | 2023.08.22 |
JavaScript 유형 변환 이해하기 (0) | 2023.08.22 |