컴퓨터/웹 : JS

[JS] 자바스크립트 변수 선언 var/let/const의 차이

도도새 도 2022. 11. 9. 21:20

자바스크립트 변수 선언

 

자바스크립트(이하 js)에서는 세 가지의 변수 선언 방식을 지원한다. 바로 var, let, const가 그것이다. 이중 letconstES6에서 추가되었다.

 

그렇담 세 가지 방식은 어떻게 다를까?

 

JS - var

 

var로 선언한 변수는 그 값이 언제든 바뀔 수 있으며 동일한 이름으로 재선언이 가능하다.

다만 재선언이 가능하다는 특징 때문에, 유연하지만 변수명을 남용하여 문제가 발생할 여지가 크기에 사용을 잘 하지 않으며, constlet으로 사용하는 추세이다.

 

var 사용 예시

3: aa를 재선언한다. 그러나 컴파일러는 어떠한 에러 메시지도 발생시키지 않고 정상적으로 작동한다.

결과를 보면 재선언 및 재할당 된 변수의 값 역시 정상적으로 출력됨을 확인할 수 있다.

 

+ var의 경우 호이스팅이 된다. 이 의미는 var aa = 3이라고 하면, aa가 3으로 초기화되기 전에 js 최상단에서 자동으로 선언이 되고 그 값으로 undefinded가 할당되는 것이다.

 

JS - let

 

var과 비슷하나 변수의 재선언이 불가능하다. 그러나 변수에 값을 재할당 하는 것은 가능하다.

 

let 사용 예시

3 : 변수를 재선언한다. var의 경우와 다르게 에러가 발생한다. 식별자 aa가 이미 선언되었다는 오류이다.

 

let 사용 예시2

3: 이미 1번째 줄에서 선언된 aa변수에 값을 재할당한다.

결과를 보면 재할당이 정상적으로 이루어진 것을 볼 수 있다.

 

JS - const

 

const 변수의 재선언, 재할당이 모두 불가능하다. , 값을 바꾸지 않을 변수에 사용된다고 볼 수 있다.

 

정리하자면 letconst의 차이는 immutable여부라고 할 수 있다.

 

const사용 예시

3: 1번째 줄에서 const로 선언된 변수에 값을 재할당한다. 오류가 발생한다.

 

정리

 

var의 경우 왠만하면 사용하지 않도록 한다.

let과 const는 변수의 재선언이 불가능하다.

let과 const의 차이는 변수의 재할당이 가능하냐 불가능하냐이다.