본문 바로가기

JavaScript

[Javascript] var, let, const의 차이

변수 선언은 var, const, let으로 할 수 있지만, const와 let의 사용을 권장한다.

왜 var보다는 const와 let의 사용을 권장하는 걸까?

 

var의 문제점

 - 변수 중복 선언이 가능하여 예기치 못한 값을 반환할 수 있다.

 - 변수 선언문 이전에 변수를 참조하게 되면 underfined를 반환한다.

 


var (변수 재선언 가능)

- 대부분의 프로그래밍 언어들이 블록 레벨 스코프를 사용하고 있지만, var은 함수 레벨 스코프를 갖는다

  (위에서 차례대로 읽음)

- 변수 선언을 여러번해도 에러없이 다른 값이 출력될 수 있다.

  같은 변수명을 남용하는 문제가 있으므로 이를 보완하기 위해서 es6부터는 let, const가 추가되었다.

    const a  = 100
         console.log(a)
         {
            const a  =  200 
            console.log(a)
            {
                const a = 300
                console.log(a)
            }
            console.log(a)
         }
         console.log(a)
         
         //100, 200, 300, 300, 300

 

 

let (변수 재선언 불가능, 변수 재할당 가능)

- 블록 스코프를 가지고 있다

- 변수의 재할당은 가능하지만 var처럼 재선언은 불가능하다.

 

    const a  = 100
         console.log(a)
         {
            const a  =  200 
            console.log(a)
            {
                const a = 300
                console.log(a)
            }
            console.log(a)
         }
         console.log(a)
         
         //100, 200, 300, 200, 100

 

 

const (변수 재선언 불가능, 변수 재할당 불가능)

const는 상수를 의미하는데 상수는 한번만 선언이 가능하며, 값을 재할당을 통해 바꿀 수 없다.

    const a  = 100
         console.log(a)
         {
            const a  =  200 
            console.log(a)
            {
                const a = 300
                console.log(a)
            }
            console.log(a)
         }
         console.log(a)
         
         //100, 200, 300, 200, 100

 

 

 

반응형