자바스크립트 변수의 스코프 규칙

자바스크립트는 동적으로 타입이 결정되는 인터프리터 언어로, 변수의 범위와 사용 가능한 영역에 대한 스코프 규칙이 중요합니다. 스코프는 변수가 정의되고 참조될 수 있는 영역을 의미하며, 이 규칙을 이해하면 변수의 유효 범위 및 충돌을 방지할 수 있습니다. 이번 글에서는 자바스크립트 변수의 스코프 규칙에 대해 알아보겠습니다.

전역 스코프 (Global Scope)

전역 스코프는 어떤 함수나 블록 안에 속하지 않은 범위로, 스크립트 전체에서 접근 가능한 변수를 의미합니다. 전역 스코프에 선언된 변수는 어디에서든 참조할 수 있습니다.

예를 들어, 아래의 코드에서 username은 전역 변수로 선언되었기 때문에 함수 내부에서도 사용할 수 있습니다.

var username = "john";

function printName() {
    console.log(username);
}

printName(); // 출력 결과: "john"

함수 스코프 (Function Scope)

함수 스코프는 함수 내부에서 선언된 변수의 범위를 의미합니다. 함수 내부에서 선언된 변수는 함수 외부에서 접근할 수 없습니다.

예를 들어, 아래의 코드에서 agegetAge 함수 내부에서 선언되었기 때문에 함수 외부에서는 사용할 수 없습니다.

function getAge() {
    var age = 30;
    console.log(age);
}

getAge(); // 출력 결과: 30
console.log(age); // ReferenceError: age is not defined

블록 스코프 (Block Scope)

ECMAScript 6부터는 블록 스코프가 도입되었습니다. 블록 스코프는 if문, for문, while문 등과 같은 블록 내에서 선언된 변수가 해당 블록 내에서만 접근할 수 있는 범위를 의미합니다.

예를 들어, 아래의 코드에서 x는 if문의 블록 스코프에 선언된 변수로, if문의 블록 외부에서는 사용할 수 없습니다.

if (true) {
    let x = 10;
    console.log(x); // 출력 결과: 10
}

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

변수 선언 키워드

변수를 선언할 때 사용되는 키워드에도 스코프 규칙에 영향을 줍니다.

스코프 규칙을 잘 이해하고 변수를 선언하는 방식을 선택함으로써 코드의 가독성과 유지 보수성을 높일 수 있습니다.

이상으로 자바스크립트 변수의 스코프 규칙에 대해 알아보았습니다.