본문 바로가기
programming/javascript

자바스크립트 변수 let 사용법 재정의 할 수 없는 변수

by 개코 - 개발과 코딩 2021. 10. 9.

자바스크립트 변수 let의 특징은 다소 생소하다. 블록으로 구역을 지정해 주면 접근을 따로 할 수 없다. 변수 var와 같이 재정의하여 다시 사용할 수 없다. 한 번 정해진 변수는 그 위치에서만 사용할 수 있다. 변수명이 같다고 해도 블록으로 나누어질 경우 서로 다른 변수로 인식한다.

자바스크립트 변수 let 사용법
재정의 할 수 없는 변수

변수 let이 재정의 할 수 없다.

다만, 변수 let에 들어간 값은 변경할 수 있다.

상수 const와 기능적으로 비슷해 보일 수도 있지만, 변수의 값을 변경할 수 있다는 점에서 차이가 있다.

재정의만 할 수 없을 뿐이다.

변수 let 특성

let으로 만들어진 변수의 특징이 있다.

var 로 선언된 것과 차이가 있다.

  • let 은 재정의 할 수 없는 변수를 선언한다.
  • let 은 사용하기 전에 먼저 선언을 해야 한다.
  • let 은 블록범위에 사용되는 구역이 정해진다.

이게 대체 무슨 말인지.

자바스크립트에서 변수는 먼저 선언하고 사용해야 하는 공통점이 있다.

변수 var는 어디에 사용하든 접근이 가능하고 변수의 값을 어떤 위치에 있던 수정할 수 있다.

변수 let은 어디에 사용하든 블록내에 있을 경우 블록 밖에서는 접근할 수 없다.

즉, 블록 내에서 let으로 선언된 변수는 블록 밖에서 접근할 수 없다.

블록 내부와 외부 접근

변수 var는 블록 구역에 대한 제한이 없이 여기저기서 접근할 수 있다.

변수 lef은 블록 구역으로 지정하면 블록 내에서만 사용이 가능하다.

코드를 보자.

<!DOCTYPE html>
<html>
    <body>

        <h1>자바스크립트 변수 let</h1>

        <script>

            var vVar = "out var";
            let vLet = "out let";

            {
                var vVar = "block var";
                let vLet = "block let";

                console.log("block vVar : ", vVar);
                console.log("block vLet : ", vLet);
            }

            vVar = "out changed var";
            vLet = "out changed let";

            console.log("vVar : ", vVar);
            console.log("vLet : ", vLet);
            
        </script>
        
    </body>
</html>

결과 화면을 보자.

중괄호로 블록 구역을 만들었다.

블록 밖에서 변수를 선언했고, 블록 내에서 변수를 선언했다.

그리고 값을 할당했다.

변수 var는 블록내에서 재정의되어 값이 변경된 것을 확인할 수 있다.

하지만 변수 let은 블록내에서 재정의가 아닌 선언이 되었으며 출력시 블록 밖의 값이 출력된 것을 확인 할 수 있다.

변수명이 같더라도 블록 밖의 let 변수와 블록 내의 let 변수는 서로 다른 것을 알 수 있다.

반응형

댓글