JavaScript에서 Scope(스코프)란?

프로그래밍에서 Scope(스코프)변수가 어디에서 접근(사용)될 수 있는지를 결정하는 개념입니다. 어떤 변수는 프로그램 전체에서 접근할 수 있지만, 어떤 변수는 특정 영역에서만 접근할 수 있습니다.

🏙 스코프를 밤하늘로 이해해보기

스코프를 쉽게 이해할 수 있도록 밤하늘에 비유해 보겠습니다.

🔹 전역 스코프 (Global Scope)

"지구 어디에서든 밤하늘의 별을 볼 수 있다."

즉, 전역(Global)에서 선언된 변수는 프로그램 어디서든 접근할 수 있습니다.

// 전역 스코프 변수
let globalVar = "나는 전역 변수야!";

function showGlobalVar() {
  console.log(globalVar); // 전역 변수는 함수 안에서도 접근 가능
}

showGlobalVar(); // "나는 전역 변수야!"
console.log(globalVar); // "나는 전역 변수야!"

🔹 지역 스코프 (Local Scope)

"도시의 강이나 빌딩은 그 지역에서만 볼 수 있다."

즉, 특정 블록(함수, 코드 블록) 안에서 선언된 변수는 그 블록 안에서만 접근 가능합니다.

function myFunction() {
  let localVar = "나는 지역 변수야!";
  console.log(localVar); // 가능 (함수 내부에서 접근)
}

myFunction();
console.log(localVar); // ❌ 에러 발생! (함수 밖에서는 접근 불가능)

localVar 변수는 함수 안에서만 선언되었기 때문에, 함수 밖에서는 사용할 수 없습니다.


💡 JavaScript의 주요 스코프 유형

✅ 1. 전역 스코프 (Global Scope)

  • 어디에서든 접근 가능한 변수
  • var, let, const 모두 전역에서 선언 가능

✅ 2. 함수 스코프 (Function Scope)

  • 함수 내부에서 선언된 변수는 함수 안에서만 접근 가능
  • var, let, const 모두 함수 내부에서 선언 가능

✅ 3. 블록 스코프 (Block Scope)

  • letconst{}(중괄호) 내부에서만 접근 가능
  • var는 블록 스코프를 가지지 않음
{
  let blockVar = "나는 블록 변수야!";
  console.log(blockVar); // 가능
}

console.log(blockVar); // ❌ 에러 발생! (블록 밖에서는 접근 불가능)

🚀 스코프를 잘 활용하는 팁

전역 변수 사용을 최소화하자! (전역 변수가 많아지면 관리가 어려워짐)
가능한 지역 변수 사용을 선호하자! (다른 코드에 영향을 주지 않도록)
letconst를 사용하자! (var는 블록 스코프를 지원하지 않음)


🎯 결론

JavaScript에서 스코프(Scope)변수가 어디에서 접근될 수 있는지를 결정하는 규칙입니다.

  • 전역 스코프: 프로그램 전체에서 접근 가능
  • 함수 스코프: 함수 내부에서만 접근 가능
  • 블록 스코프: {} 내부에서만 접근 가능 (let, const)

이 개념을 잘 이해하면 코드의 가독성안정성을 높이는 데 큰 도움이 됩니다! ✨

📌 다음에는 클로저(Closure)와 스코프의 관계에 대해서도 다뤄보겠습니다! 😃

profile
재미난 삶을 살다

0개의 댓글