
변수를 선언하는데는 3가지 방법이 있다.
var, let, const
var a = 10;
var는 변수를 다시 선언할 수 있다.
var a = 10;
console.log(a); // 10
var a = 16;
console.log(a); // 16
var의 경우, 소규모프로젝트나 연습문제를 풀이할 경우에는 상관없지만, 규모가 큰 프로젝트를 할 경우, 변수가 언제, 어디서 사용되었는지 바뀌었는지 파악하기 어렵다는 큰 단점이 있다.
let a = 10;
let은 변수의 재선언이 불가능하다.
let a = 10;
console.log(a); //10
let a = 18;
console.log(a) // Uncaught SyntaxError: Identifier 'a' has already been declared
같은 변수 a를 다시 선언했을 때, 이미 선언되었다는 에러메시지가 나온다.
하지만, 재할당은 가능하다.
let a = 10;
a = 16;
console.log(a) // 16
const a = 10;
const는 재선언, 재할당 모두 불가능하다.
const a = 10;
a = 17;
console.log(a) // Uncaught TypeError: Assignment to constant variable.
선언된 변수의 값을 다시 할당했을 경우 에러메시지가 나온다.
재할당이 필요한 경우 let, 그렇지 않은 경우 const
var의 경우 유연하게 재선언, 재할당이 이루어지지만, 간단한 테스트상황이 아닌 복잡한 프로그램을 만들 경우에는 혼란스러운 상황을 겪게 될 가능성이 크다.
그렇기때문에 재할당이 필요한 경우에 let을 쓰고, 그렇지 않은 경우에는 const를 써서 변수의 scope를 최대한 좁히는 것이 좋다.