함수 스코프 vs 블록 스코프

함수 스코프와 블록 스코프는 프로그래밍에서 변수가 유효한 범위를 정하는 방식을 말합니다. 이 두 가지 스코프는 변수의 유효 범위를 결정하는 규칙에 차이를 가지고 있습니다.

함수 스코프

함수 스코프는 변수가 함수 내에서만 유효하도록 하는 스코프입니다. 즉, 함수 안에서 선언된 변수는 함수 내에서만 사용할 수 있으며, 함수 외부에서는 접근할 수 없습니다.

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

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

위의 코드에서는 myFunction 함수 내부에서 변수 x를 선언하고 사용합니다. 이 변수는 함수 내에서만 유효하므로 함수 외부에서는 접근할 수 없습니다.

블록 스코프

블록 스코프는 변수가 해당 블록 내에서만 유효하도록 하는 스코프입니다. 블록은 주로 조건문이나 반복문의 중괄호 내부를 말합니다.

if (true) {
    let y = 20;
    console.log(y); // 20
}

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

위의 코드에서는 if 조건문의 블록 내에서 변수 y를 선언하고 사용합니다. 이 변수는 블록 내에서만 유효하므로 블록 외부에서는 접근할 수 없습니다.

결론

함수 스코프와 블록 스코프는 변수의 유효 범위를 다르게 정의하는 스코프 규칙입니다. 함수 스코프는 함수 내에서 변수가 유효하며, 블록 스코프는 블록 내에서 변수가 유효합니다. 이를 이해하고 적절하게 스코프를 사용하면 변수의 유효 범위를 효과적으로 제어할 수 있습니다.

#함수스코프 #블록스코프