var은 유연한 변수 선언이 가능하다는 점이 장점이자 단점이다
복잡한 코드에서는 에러가 나오지 않아 잘못된 곳을 파악하기 어렵다
var x = "John Doe";
var x = 0;
//오류 발생하지 않음
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
반면에 let을 사용하면 x가 이미 선언되었다는 에러 메세지가 뜬다 (재선언 불가능)
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
var은 블록 안에서 사용할 수 있는 반면에
let은 블록 안에서 사용할 수 없다
{
var x = 2;
}
// x CAN be used here
{
let x = 2;
}
// x can NOT be used here
let과 마찬가지로 재선언이 불가능하다
하지만 let과의 차이점은 재할당(업데이트) 가능여부이다
let은 재할당이 가능하지만
const는 재할당이 불가능하다
let x = 2
console.log(x) // 2
let x = '3'
console.log(x)
// Uncaught SyntaxError: Identifier 'x' has already been declared
x = '4'
console.log(x) //4
const x = 2
console.log(x) // 2
const x = '3'
console.log(x)
// Uncaught SyntaxError: Identifier 'x' has already been declared
x = '4'
console.log(x)
// ncaught TypeError: Assignment to constant variable.
📌 기본적으로 const, 재할당이 필요한 경우에는 let
var은 가급적 사용하지 말자!!!!!1
📌 let이 나오면 언제 업데이트 될지 모르니까 염두해두기