본문 바로가기
programming/javascript

자바스크립트 배열 상수 접근 범위 블록스코프 block scope

by 개코 - 개발과 코딩 2022. 2. 12.

자바스크립트의 블록스코프는 데이터의 접근허용범위를 의미하기도 한다. 배열 상수는 블록스코프의 영향을 받는데 이미 정의된 상수 배열이 있다고 해도 블록 내부에 같은 이름의 상수 배열이 있다고 해도 서로 독립적으로 다른 상수이다.

블록스코프는 쉽게 말해 코드 블록이라 생각해도 된다.

자바스크립트 배열 상수 접근 범위
블록스코프 block scope

자바스크립트의 배열 상수는 블록 스코프의 범위에 따라 달라진다.

블록스포크는 중괄호를 이용한 코드의 접근유효범위를 말한다.

쉽게 말해 접근범위

블록스코프의 쉬운 예는 전역변수, 지역변수가 있다.

이런 특성을 활용하면 재정의할 수 없는 배열상수라 해도 중복해서 사용할 수 있는 효과를 볼 수 있다.

접근범위 블록스코프

블록스코프는 중괄호 내부에 있는 코드들의 접근범위를 말한다.

자바스크립트 뿐만 아니라 거의 모든 언어는 코드블록을 가지고 있다.

이 코드블록 내에서 변수나 어떤 값에 접근할 때 유효한 접근 범위를 가질 수 있다.

배열 상수의 특징 중 하나가 접근범위에 있다.

블록으로 감싸주면 내부에 있던 외부에 있던 서로간의 간섭은 발생하지 않는다.

설령 변수명이 같다고 해도 말이다.

const vArray = [1]
{
	const vArray = [2]
}

샘플코드

아래는 블록을 이용한 접근범위를 나타낸 코드이다.

블록스코프와 밀접하기 때문에 결과화면은 눈에 익혀두도록 하자.

원칙적으로는 아래의 코드는 에러가 나타나야 정상이다.

하지만, 블록스코프에 의해 접근범위가 다르기 때문에 변수명은 같더라도 다른 상수이다.

<!DOCTYPE html>
<html>
    <body>

        <script>
            
            console.log('----------');

            const vArray = ["OUT","현대자동차", "기아자동차", "쌍용자동차", "쉐보레"];
            console.log(typeof(vArray), vArray);

            {
                const vArray = ["IN","현대자동차", "기아자동차", "쌍용자동차", "쉐보레"];
                console.log(typeof(vArray), vArray);
            }
            console.log(typeof(vArray), vArray);
            
            console.log('----------');

        </script>

    </body>
</html>

결과화면을 보자.

정상적으로 결과가 나타나는 것을 볼 수 있다.

블록 안쪽에 있는 상수와 블록 바깥쪽에 있는 상수는 서로 다르기 때문이다.

그렇다고 일반 변수로 재정의한다고 했을 때는 에러가 발생한다.

이점은 주의하자.

반응형

댓글