코딩을 처음 공부할 때 식별자(변수)는 왜 나뉘어있는지 헷갈려보았을 것이다.
복잡한 메커니즘 이론 내용을 제외하고 간단히 설명하자면
var a = 1;
var a = 2; // 중복 선언 가능
a = 3; // 재할당 가능
let a = 1;
var a = 2; // 중복 선언 불가능
a =3 ; // 재할당은 가능
const a; // const는 선언과 초기화가 동시에 되어야 하므로 불가능
const a = 1;
const a = 2; // 중복 선언 불가능
a = 3 // 재할당도 불가능 다만 객체는 변경 가능
원래는 var만 존재했으나 변수의 중복 선언과 재할당은 방대한 양을 코딩할 때 예기치 못한 중복이나 충돌이 발생하는 경우를 막기 위해서 이후에 let과 const가 나왔다.
스코프(식별자가 영향을 미치는 범위)가
var > let > const 순으로 즉 오른쪽으로 갈수록 좁은 범위를 담당하게 되고
세밀하게 변수를 관리해 추후 문제가 생길 가능성을 줄여줄 수 있다.
결론은 상황에 따라 사용하는 게 맞지만 var보다는 let과 const를 사용하는 편이 좋고 사실상 변하지 않는 상수 개념의 경우에는 const를 사용하자.