const
선언과 동시에 값을 지정해야하며,
한번 넣은 값은 바꿀 수 없는 상수를 선언할 때 사용
const x = 1;
let
선언과 값 정의를 따로 할 수 있고,
넣은 값은 언제든지 바꿀 수 있다.
let x;
x = 1;
x = 2;
var
중복 선언이 가능하다.
때문에 디버깅에 어려움이 있다.
var x = 1;
var x = 2;
호이스팅 (변수가 속한 스코프의 최상단으로 끌어올려진다)
따라서 다음과 같은 코드에도 에러가 발생하지 않는다.
console.log(x);
// ReferenceError 발생
console.log(y);
// ReferenceError 발생
console.log(z);
// undefined 출력
const x = 1;
let y = 2;
var z = 3;
var 변수를 사용할 때 hoisting과 scope를 고려해야한다.
하지만 나는 지금까지 굳이 사용해본 적 없다는 점..!