var, let, const는 자바스크립트에서 변수 선언을 위해 사용한다. var는 ES6 이전의 유일한 변수 선언 방식이었지만 이후에는 var의 여러 단점을 보완하기 위해 letconst가 추가되었다. 지금부터 변수 선언의 3가지 방법에는 어떤 특징과 차이점이 있는지 크게 5가지로 알아보자.

var, let, const 차이점

  1. 중복선언
  2. 재할당
  3. 스코프(Scope)
  4. 호이스팅(Hoisting)
  5. 전역객체 프로퍼티

5-1. var

5-1-1. 중복선언

var는 중복선언이 가능한 변수이다. var로 선언한 변수는 재선언이 가능하며 마지막으로 할당된 값이 변수에 저장된다.

var a = 1;
console.log(a); // 1

var a = 10;
console.log(a); // 10

var a;
console.log(a); // 10

5-1-2. 재할당

var는 값의 재할당이 가능한 변수이다. 반복해서 재할당이 가능하다는 점이 편리하지만 복잡한 코드를 쓸 때는 이전에 선언해둔 변수를 잊고 값을 재할당하게 되면 변수가 다시 덮어 씌어지는 경우가 있으니 유의하자. 이러한 단점을 보완하고자 let과 const가 나온 것이다.