JavaScript의 범위는 변수 가시성과 수명 주기를 관리하기 위한 중요한 개념입니다.
이 기사에서 JavaScript의 범위를 이해하고 예제를 통해 확인해보자.
JavaScript 범위는 무엇입니까?
JavaScript의 범위는 변수가 정의되고 사용되는 영역이며 변수를 참조할 수 있는 위치를 결정하는 역할을 합니다. 영역에는 주로 블록 영역과 기능 영역의 두 가지 유형이 있습니다.
1. 블록 영역
블록 범위에서 변수는 중괄호({})로 둘러싸인 코드 블록 내에서 정의되고 사용됩니다.
블록 범위 변수는 let 및 const 키워드를 사용하여 만들 수 있습니다.
또한 블록 범위에서 정의된 변수는 해당 블록과 하위 블록에서만 접근이 가능합니다.
블록 영역
{
let blockScopedVar="I am block scoped!";
console.log(blockScopedVar); // 'I am block scoped!'
}
console.log(blockScopedVar); // ReferenceError: blockScopedVar is not defined
조건의 블록 영역
if (true) {
let blockScopedVar="I am block scoped within an if statement!";
console.log(blockScopedVar); // 'I am block scoped within an if statement!'
}
console.log(blockScopedVar); // ReferenceError: blockScopedVar is not defined
루프의 블록 영역
for (let i = 0; i < 3; i++) {
let blockScopedVar="I am block scoped within a loop!";
console.log(blockScopedVar); // 'I am block scoped within a loop!' 출력됩니다 (3번 반복)
}
console.log(blockScopedVar); // ReferenceError: blockScopedVar is not defined
중첩된 블록 영역
{
let outerVar="I am in the outer block!";
{
let innerVar="I am in the inner block!";
console.log(outerVar); // 'I am in the outer block!'
}
console.log(innerVar); // ReferenceError: innerVar is not defined
}
2. 기능
기능 범위는 함수 내에서 변수가 정의되고 사용되는 영역입니다.
함수 범위 변수는 var 키워드로 생성할 수 있으며 함수 범위에 정의된 변수는 함수 내에서만 액세스할 수 있습니다.
function functionScoped() {
var functionScopedVar="I am function scoped!";
console.log(functionScopedVar); // 'I am function scoped!'
}
functionScoped();
console.log(functionScopedVar); // ReferenceError: functionScopedVar is not defined
JavaScript 범위 지정은 변수의 가시성과 수명 주기를 제어하기 위한 핵심 개념입니다.
코드를 작성할 때 영역을 올바르게 이해하고 사용하면 오류를 줄이고 코드 효율성을 높이는 데 큰 도움이 됩니다. 이 기사가 블록 범위 및 기능 범위에 대한 이해를 향상시켰기를 바랍니다.