💡 let과 const는 ES2015(ES6)에 추가된 변수 선언 키워드
❕ hoisting 규칙이 없고, block scoping을 지원한다.
❕ 따라서 var보다 훨씬 예측 가능한 코드를 짤 수 있게 해준다.
let x = 1
x = 2 // OK
const y = 1
y = 2 // Uncaught TypeError
var x = 1
var x = 2
let x = 1
let x = 2
// Uncaught SyntaxError: Identifier 'x' has already been declared
console.log(x) // undefined
var x = 0
console.log(x)
// ReferenceError: Cannot access 'x' before initialization
const x = 0
var x = 1
{
var x= 2
console.log(x) // 2
}
console.log(x) // 2
const x = 1
{
const x= 2
console.log(x) // 2
}
console.log(x) // 1
let과 const의 예측 가능성과 유지보수성이 var보다 훨씬 뛰어나다
가능하다면 const만 쓰고, 필요한 경우에 한해 let을 쓰고, var는 안 쓰는 게^^