[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에서 도입된 let
과 const
키워드는 블록 유효 범위를 가지고 있습니다.
if (true) {
let y = 20;
console.log(y); // 20
}
console.log(y); // ReferenceError: y is not defined
위의 코드에서 y
변수는 if
블록 내에서만 유효합니다.
또한, const
키워드로 선언된 변수는 재할당이 불가능하고 let
키워드는 재할당이 가능합니다.
자바스크립트에서의 함수 유효 범위 개념을 확실히 이해하면 변수의 충돌을 방지하고 예기치 않은 버그를 방지할 수 있습니다.