[javascript] 함수의 유효 범위

자바스크립트에서 함수의 유효 범위를 이해하는 것은 중요합니다.

지역 유효 범위 (Local Scope)

함수 내에서 선언된 변수는 그 함수 내부에서만 접근할 수 있습니다.

function myFunction() {
  let x = 10;
  console.log(x); // 10
}
myFunction();
console.log(x); // ReferenceError: x is not defined

위의 코드에서 x 변수는 myFunction 함수 내에서 선언되었기 때문에 함수 외부에서는 접근할 수 없습니다.

전역 유효 범위 (Global Scope)

함수 외부에서 선언된 변수는 전역 유효 범위를 갖습니다.

let x = 10;
function myFunction() {
  console.log(x); // 10
}
console.log(x); // 10
myFunction();

위의 코드에서 x 변수는 함수 외부에서 선언되었기 때문에 어느 곳에서든 접근할 수 있습니다.

블록 유효 범위 (Block Scope)

ES6에서 도입된 letconst 키워드는 블록 유효 범위를 가지고 있습니다.

if (true) {
  let y = 20;
  console.log(y); // 20
}
console.log(y); // ReferenceError: y is not defined

위의 코드에서 y 변수는 if 블록 내에서만 유효합니다.

또한, const 키워드로 선언된 변수는 재할당이 불가능하고 let 키워드는 재할당이 가능합니다.

자바스크립트에서의 함수 유효 범위 개념을 확실히 이해하면 변수의 충돌을 방지하고 예기치 않은 버그를 방지할 수 있습니다.