← 목록

JavaScript 스코프 이해하기 🌐

작성: 2024년 07월 30일읽기: 약 2분

JavaScript에서 "스코프"는 변수가 어디서 접근 가능한지를 결정하는 중요한 개념입니다. 간단하게 말해서, 스코프는 변수가 살고 있는 공간입니다. 이해하기 쉽게, 우리는 JavaScript 스코프를 크게 두 가지로 나눌 수 있습니다: 전역 스코프와 지역 스코프.

전역 스코프(Global Scope)

전역 스코프에 선언된 변수는 어디서든지 접근할 수 있습니다. 즉, 코드의 어느 부분에서든 그 변수를 사용할 수 있죠.

var myGlobalVar = "안녕, 전역 스코프!";

function sayHello() {
  console.log(myGlobalVar); // "안녕, 전역 스코프!"
}

sayHello();
console.log(myGlobalVar); // "안녕, 전역 스코프!"

지역 스코프(Local Scope)

반면, 지역 스코프에 선언된 변수는 그 스코프 내에서만 접근할 수 있습니다. 함수 내부에서 선언된 변수는 그 함수 내부에서만 사용할 수 있죠.

function sayGoodbye() {
  var myLocalVar = "안녕, 지역 스코프!";
  console.log(myLocalVar); // "안녕, 지역 스코프!"
}

sayGoodbye();
// console.log(myLocalVar); // ReferenceError: myLocalVar is not defined

위의 예시에서 myLocalVarsayGoodbye 함수 내부에서만 접근할 수 있습니다. 함수 밖에서 myLocalVar에 접근하려고 하면 에러가 발생합니다.

블록 스코프(Block Scope)

ES6부터는 letconst를 사용하여 블록 스코프 변수를 선언할 수 있습니다. 이는 {}로 둘러싸인 코드 블록 내에서만 접근할 수 있는 변수를 만듭니다.

function checkWeather(isRainy) {
  if (isRainy) {
    let umbrella = "우산을 챙기세요!";
    console.log(umbrella); // "우산을 챙기세요!"
  }
  // console.log(umbrella); // ReferenceError: umbrella is not defined
}

checkWeather(true);

위 예시에서 umbrella 변수는 if 블록 내에서만 접근할 수 있습니다. 블록 밖에서는 접근할 수 없죠.

결론

JavaScript의 스코프를 이해하는 것은 변수가 어디서 접근 가능한지, 그리고 어디서 접근할 수 없는지를 알아내는 데 중요합니다. 코드를 작성할 때 변수를 어디에 선언할지 결정하는 데 도움이 됩니다. 전역 스코프를 남용하지 않고, 필요한 곳에서만 지역 스코프를 사용하여 코드의 가독성과 유지보수성을 높이세요.