아래 글을 참고하셔요.
https://gist.github.com/LeoHeo/7c2a2a6dbcf80becaaa1e61e90091e5d
그런데, 내가 알고 싶은것만 정리하면,
// 이미 만들어진 변수이름으로 재선언했는데 아무런 문제가 발생하지 않는다.
var a = 'test'
var a = 'test2' // 같은 이름으로 다시 선언해도 아무 문제가 없다.
// let
let a = 'test'
let a = 'test2' // 불가능, 같은 이름으로 다시 선언 할 수 없다. Uncaught SyntaxError: Identifier 'a' has already been declared
a = 'test3' // 가능
// const
const b = 'test'
const b = 'test2' // 불가능, Uncaught SyntaxError: Identifier 'a' has already been declared
b = 'test3' // 값을 다시 할당하는 것도 불가능, 선언할 때만 가능한다. Uncaught TypeError:Assignment to constant variable.