
프로그래밍에서 Scope(스코프)는 변수가 어디에서 접근(사용)될 수 있는지를 결정하는 개념입니다. 어떤 변수는 프로그램 전체에서 접근할 수 있지만, 어떤 변수는 특정 영역에서만 접근할 수 있습니다.
스코프를 쉽게 이해할 수 있도록 밤하늘에 비유해 보겠습니다.
"지구 어디에서든 밤하늘의 별을 볼 수 있다."
즉, 전역(Global)에서 선언된 변수는 프로그램 어디서든 접근할 수 있습니다.
// 전역 스코프 변수
let globalVar = "나는 전역 변수야!";
function showGlobalVar() {
console.log(globalVar); // 전역 변수는 함수 안에서도 접근 가능
}
showGlobalVar(); // "나는 전역 변수야!"
console.log(globalVar); // "나는 전역 변수야!"
"도시의 강이나 빌딩은 그 지역에서만 볼 수 있다."
즉, 특정 블록(함수, 코드 블록) 안에서 선언된 변수는 그 블록 안에서만 접근 가능합니다.
function myFunction() {
let localVar = "나는 지역 변수야!";
console.log(localVar); // 가능 (함수 내부에서 접근)
}
myFunction();
console.log(localVar); // ❌ 에러 발생! (함수 밖에서는 접근 불가능)
localVar 변수는 함수 안에서만 선언되었기 때문에, 함수 밖에서는 사용할 수 없습니다.
var, let, const 모두 전역에서 선언 가능var, let, const 모두 함수 내부에서 선언 가능let과 const는 {}(중괄호) 내부에서만 접근 가능var는 블록 스코프를 가지지 않음{
let blockVar = "나는 블록 변수야!";
console.log(blockVar); // 가능
}
console.log(blockVar); // ❌ 에러 발생! (블록 밖에서는 접근 불가능)
✅ 전역 변수 사용을 최소화하자! (전역 변수가 많아지면 관리가 어려워짐)
✅ 가능한 지역 변수 사용을 선호하자! (다른 코드에 영향을 주지 않도록)
✅ let과 const를 사용하자! (var는 블록 스코프를 지원하지 않음)
JavaScript에서 스코프(Scope)는 변수가 어디에서 접근될 수 있는지를 결정하는 규칙입니다.
{} 내부에서만 접근 가능 (let, const)이 개념을 잘 이해하면 코드의 가독성과 안정성을 높이는 데 큰 도움이 됩니다! ✨
📌 다음에는 클로저(Closure)와 스코프의 관계에 대해서도 다뤄보겠습니다! 😃