Javascript에 변수 선언 방식인 var, let, const에 각각 차이점을 알아보도록 하자.
var를 사용하면 변수 선언 및 할당이 유동적으로 변경될 수 있는 단점이 있다.
var pyo = 'jung min';
console.log(pyo); // output : jung min
var pyo = 'jung';
console.log(pyo); // output : jung
pyo = 'min';
console.log(pyo); // output : min
위와 같이 변수 재선언 및 재할당을 하였는데도 에러가 나오지 않고 각각 다른 값이 출력 되는 것을 볼 수 있다.
이는 간단한 테스트에서는 편리할 수 있으나 코드량이 많아 지거나 복잡한 구조의 프로그래밍을 할 때는 디버깅 자체가 어려워진다.
그래서 ES6 이후, 이를 보완하기 위해 추가 된 변수 선언 방식이 let
과 const
이다.
let pyo = 'jung min';
console.log(pyo); // output : jung min
let pyo = 'jung';
console.log(pyo); // Uncaught SyntaxError: Identifier 'pyo' has already been declared
pyo = 'min';
console.log(pyo); // output : min
let을 사용하면 재할당은 가능 하나 재선언을 하게 될 경우에는 ncaught SyntaxError: Identifier 'pyo' has already been declared
와 같이 이미 선언되어 있다는 에러 메시지가 출력된다.
const pyo = 'jung min';
console.log(pyo); // output : jung min
const pyo = 'jung';
console.log(pyo); // Uncaught SyntaxError: Identifier 'pyo' has already been declared
pyo = 'min';
console.log(pyo); // Uncaught TypeError: Assignment to constant variable.
const의 경우 재선언 및 재 할당이 모두 불가능하다.
Value | 재선언 | 재할당 |
---|---|---|
var | O | O |
let | X | O |
const | X | X |
var의 경우 버그 발생과 메모리 누수의 위험 등이 있기 때문에 var말고 let, const를 사용하시는 것이 좋습니다.