열정 실천

[JavaScript] var, let, const 차이 본문

개발 공부/JS

[JavaScript] var, let, const 차이

구운오니 2023. 7. 21. 22:55

앞 포스팅에서 다룬 var의 문제들로 인해 ES6에서는 let과 const라는 새로운 문법을 소개했다.

letconst 는 전에 말한 var의 3가지 문제를 개선한 문법이라고 보면 된다. 

 

 

 

📌 var와 구별되는 let, const의 특징

 


1. 같은 이름의 변수를 중복 선언할 수 없다. 

 

 

2. 함수스코프가 아닌 블록스코프이다.                         

스코프, 함수스코프, 블록스코프 알아보기 👉👉  https://guun-oni.tistory.com/80

 

3. 호이스팅이 발생하지만 초기화되지는 않는다. 

       >> var와 마찬가지로 선언이 맨 위로 끌어올려지는 호이스팅이 발생하지만 

            var 변수는 undefined(정의되지 않음)으로 초기화되고, 

            let const 변수는 초기화되지 않아 선언 이전에 변수를 사용하려고 시도하면 reference error 오류가 발생한다. 

 

 

 

 

 

📌 let과 const의 차이 

 

 

같은 블록 범위를 가지는 let과 const의 차이는 업데이트의 될 수 있는가 없는가이다. 

 

let 은 선언 후 나중에 업데이트가 될 수 있지만, (업데이트 == "재할당" or "재정의" or "mutable")

let num = "One";

name = "Seven";

 

 

const 는 선언 후 업데이트가 될 수 없다. (Immutable)

또한 처음 선언 시 무조건 값이 초기화가 되어야한다. 

const num = "One";

const name; //ERROR

 

const로 선언된 객체는 업데이트할 수 없지만 객체의 '속성=프로퍼티'는 업데이트 할 수 있다. 

(객체 변수에 할당된 주소 값을 변경할 수 없는 것)

const person = {
	name : "Koo",
    age : "20"
}


person.age = 30;  // 가능

 

 

 

👉 So!

 

재할당이 필요없는 상수와 객체는 const를 사용하는 것이 좋다. 의도치 않은 재할당을 방지해준다. 

재할당이 필요한 경우에는 let을 사용하면 된다.