
기존 자바스크립트의 변수 선언은 var라는 키워드로 했었다. 하지만 ES6에서 const와 let이라는 새로운 변수 선언 키워드가 도입되었다. 각 키워드마다 변수의 선언, 할당, 범위의 차이가 있다.
재선언: O
재할당: O
범위: function
var name = "kim";
var name = "park";
console.log(name);
위 코드를 실행시키면 콘솔창에 park가 출력된다. 재선언과 재할당이 모두 되는것을 확인할 수 있다.
재선언: X
재할당: O
범위: 블록범위
let name = "kim";
let name = "park";
위 코드를 실행시키면 콘솔창에

let name = "kim";
name = "park";
console.log(name);
재선언은 불가하지만 재할당은 가능하다. 위 코드를 실행시키면 콘솔창에 park가 출력된다.
재선언: X
재할당: X
범위: 블록범위
const name = "kim";
const name = "park";

let과 마찬가지로 const도 재선언이 불가하며 위 코드를 실행시키면 에러가 발생한다.
const name = "kim";
name = "park";
위 코드를 실행시키면 다음과 같이

constant(상수) 변수에 할당되었다는 에러가 발생한다. 바뀌면 안되는 값을 저장하고 싶을때 사용하면 좋다.
Object.freeze()를 사용