var
이전 자바스크립트의 변수 선언이 var로만 가능했었다.
var 변수 선언을 했을 경우 가장 큰 특징은 중복 선언이 가능하다.
var a =10;
console.log(a) // 결과값 10
var a = 20;
console.log(a) // 결과값 20
var a = 30;
console.log(a) // 결과값 30
중복 선언의 위험성 때문에 큰 단점으로 여겨진다.
이 문제를 보완하기 위해 let과 const가 추가되었다.
let
변수명을 중복으로 선언하면 아래와 같은 에러가 발생한다.
허나 값을 재할당 하는 것은 가능하다.
let a = 10;
console.log(a) // 결과값 10
let a = 20;
console.log(a) // 에러발생
// SyntaxError: Identifier 'a' has already been declared
// 중복 선언 불가
a = 30;
consolel.log(a) // 결과값 30
// 값을 재할당 하는 것은 가능
const
변수명을 중복으로 선언하면 let과 같은 에러가 발생한다.
const는 값을 재할당 하는 것도 불가능하다.
처음 선언하면 다른 값을 넣을 수 없기에 보통 const는 상수를 선언하는 키워드로 사용한다.
const a = 10;
consolel.log(a) // 결과값 10
const a = 20;
console.log(a) // 에러 발생
// SyntaxError: Identifier 'a' has already been declared
// 중복 선언 불가
a = 30; // 에러 발생
// Assignment to constant variable.
// 값을 재할당 하는 것도 불가
값을 재할당 할 필요가 있을 경우 - let
값을 재할당 할 필요가 없을 경우 - const