JavaScript에서 변수를 선언하는 방법은 3가지가 있다.
var
, let
, const
이다.
이 세가지는 어떤 차이가 있을까?
var의 경우는 ES6이전에 나왔으며, 변수의 재선언이 가능하다는 특징이 있다.
아래와 같이 이해할 수 있다.
var a = 'test1'
console.log(a) // test1 출력
var a = 'test2'
console.log(b) // test2 출력
변수 a를 한번 더 선언해도 에러가 발생하지 않고 재선언하여 할당한 'test2'가 출력된다.
이렇게 되면 코드량이 많아질 경우 파악하기 힘들어 지는 문제가 있다.
이를 보완하기 위해 나온게 let과 const 이다.
let의 경우는 var과 마찬가지로 재할당은 가능하나 재선언시에는 에러가 발생한다.
let a = 'test1'
console.log(a) // test1 출력
let a = 'test2'
console.log(a) // SyntaxError: Identifier 'a' has already been declared
const는 재할당이 불가능한 선언이다.
const a = 'test'
console.log(a) // test 출력
a = 'test2'
console.log(a) // TypeError: Assignment to constant variable.