[Javascript] var, let, const 차이
JavaScript

[Javascript] var, let, const 차이

 

자바스크립트에서 변수를 선언할 때 var, let, const가 쓰이는 것을 자주 보았을 것이다.

 

var 는 선언 방식에 있어서 큰 단점을 가지고 있다

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

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

 

위 같은 코드를 작성했을 시, 이미 선언된 변수를 다시 선언했음에도 불구하고 에러가 나오지 않고 각각 다른 값이 출력된다.

변수를 유연하게 사용하기에는 좋을 수 있으나, 코드가 길어지고 변수가 많아지면 초기에 선언된 값이 바뀌면서 코드에 큰 영향을 끼칠 수 있다.

 

따라서 ES6 이후에 이를 보완하기 위해 letconst가 추가됐다

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

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

위 처럼 변수를 선언할때 let을 사용하게 되면 변수가 중복으로 선언되는 것을 방지할 수 있다.

 

그렇다면 letconst의 차이점은 무엇일까?

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

name = 'Jaehyung'
console.log(name) // Jaehyung


const name2 = 'Dayoung'
console.log(name2) // Dayoung

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

name2 = 'Jaehyung'
console.log(name2)
//Uncaught TypeError: Assignment to constant variable.

위 코드에서 볼 수 있듯 let은 변수에 새로운 값을 재할당하는 것이 가능하다.

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

 

 

고로 기본적으로 변수를 선언할 때는 var보다 재할당 가능여부에 따라 let, const를 사용하는 것이 나은 선택이다.