Front-end/JavaScript Language

var, let, const 변수 선언 차이

prden 2021. 9. 24. 20:46

1. var

    var name = 'hello'
    console.log(name) // hello

    var name = 'good night'
    console.log(name) // good night

var는 변수를 선언한 후에 다시한번 var로 선언해도 에러가 나오지 않고 각기 다른 값이 출력된다.

이를 보완하기위해 추가된 변수 선언방식이 아래의 let 과 const이다. 

 

let과 const의 공통점은 위에서 이미 변수가 선언되었을 경우 아래서 변수 재 선언이 되지 않는다.(아래의 에러메시지 출력됨)

//Uncaught SyntaxError: Identifier '******' has already been declared

차이점(immutable여부)은 아래와 같다. 

 

2. let

let은 변수 재할당이 가능하다. 

    let name = 'Hello'
    console.log(name) // Hello

    let name = 'javascript'
    console.log(name) 
    // Uncaught SyntaxError: Identifier 'name' has already been declared

    name = 'good night'
    console.log(name) //good night

 

 

3. const

const는 변수 재할당, 재선언 모두 불가능하다. 

 	const name = 'Hello'
    console.log(name) // Hello

    const name = 'javascript'
    console.log(name) 
    // Uncaught SyntaxError: Identifier 'name' has already been declared

    name = 'good night'
    console.log(name) 
    //Uncaught TypeError: Assignment to constant variable.

 

4. 결론

변수 선언에는 기본적으로 const를 사용하고, 재할당이 필요한 경우에만 let을 사용한다. 

객체를 재할당하는 경우는 거의 없으니까 const를 사용할 경우 재할당을 방지해준다.