[Vanilla JS] Vanilla JS 변수
var let const의 차이점
- var는 함수 레벨 스코프이고 let, const는 블럭 레벨 스코프입니다.
- var로 선언한 변수는 선언 전에 사용해도 에러가 나지 않지만 let, const는 에러가 발생합니다.
- var는 이미 선언되어있는 이름과 같은 이름으로 변수를 또 선언해도 에러가 나지 않지만 let, const는 이미 존재하는 변수와 같은 이름의 변수를 또 선언하면 에러가 납니다.
- var, let은 변수 선언시 초기 값을 주지 않아도 되지만 const는 반드시 초기값을 할당해야 합니다.
- var, let은 값을 다시 할당할 수 있지만 const는 한번 할당한 값은 변경할 수 없습니다(단, 객체 안에 프로퍼티가 변경되는 것까지 막지는 못합니다).
var 예시
console.log(num);
var num; //undefined
let 예시
- let은 변수가 바뀔 수 있지만 const는 변수가 정해진 순간 바뀔 수 없다.
console.log(num); // Uncaught ReferenceError: num is not defined
let num = 1;
console.log(num); //1
let num; //undefined
console.log(num); //undefined
num = 1; //1
console.log(num) //1
const 예시
const obj = { first: 1 };
// 에러 발생
obj = 1; // Uncaught TypeError: Assignment to constant variable.
// 에러 발생하지 않음.
obj.first = 2;
obj.second = 2;
delete obj.first;