var foo = 'asdf'
var foo = '1234'
console.log(foo) // '1234'
var로 선언한 변수는 또다시 같은 이름으로 선언해도 에러가 나지 않는다.
프로그램이 복잡해질경우 내가 선언한 변수의 이름을 일일히 기억하지 못했다가 저런식으로 다시 선언해서 큰 낭패를 볼 수 가 있다.
let foo = 'asdf'
let foo = '1234' // error
let으로 다시 선언하면 에러가 난다.
let foo = 'asdf'
foo = '1234'
console.log(foo) // 'asdf'
let으로 선언하고 값을 '1234'로 재할당했다(mutable).
const foo = 'asdf'
const foo = '1234' // error
역시 const로 재선언 하면 에러가 난다.
const foo = 'asdf'
foo = '1234'
console.log(foo) // error
const로 선언한 변수에는 재할당이 불가능하다(immutable).