ES6(ECMA Script 2015)전에 변수를 선언할 수 있었던 것은 var 뿐이였으나 ES6에 들어오면서 let, const 변수가 생겼습니다. let, var, const 차이점에 대해서 알아보겠습니다
기존 자바스크립트 같은 경우 function scope로 변수의 유효범위가 함수 단위입니다. 하지만 java 나 C 계열의 언어의 경우 function scope가 아닌 block scope를 가집니다.
var a = 1
a = 2
console.log(a) // 2
var a = 3
console.log(a) //3
let b = 1
b = 2
console.log(b) // 2
let b = 3 // SyntaxError: Identifier 'b' has already been declared
console.log(b)
const c = 1
c = 2 // TypeError: Assignment to constant variable.
console.log(c)
const c = 3 // / SyntaxError: Identifier 'c' has already been declared
console.log(c)
var 같은 경우 유연하여 재할당과 재선언이 가능합니다. let 같은 경우는 재할당은 가능하며, 재선언은 불가하여 에러를 출력합니다. const 같은 경우는 재할당 재선언 둘다 안됩니다.