용기러기's Coding World

javascript (6) - var, let, const 비교 본문

용기러기's javascript

javascript (6) - var, let, const 비교

yongkis 2020. 8. 2. 11:26

안녕하세요 :D

 

오늘은 공통적으로 변수를 선언(Declaration)하는 데에 쓰이는

var, let, const가

개별적으로 어떤 특징을 가지는지

비교하면서 알아보고자 합니다:D 

 

 

먼저,

var 에 대해서 살펴보면,

1번 코드
1번 코드의 출력물

위를 보시면,

변수명 mvp라는 변수에 '코비 브라이언트'라는 문자열을 할당(assignment)해준 것을 볼 수 있습니다:D

그런데,

한번 선언된 mvp 변수를 

밑에서 또다시 써서 이번에는 '홍용기'라는 (제이름입니다..ㅎ)

문자열을 넣어줬는데요!

이렇게 이미 선언한 변수를 또다시 선언할 수 있게 해주는 것이 'var'의 특징입니다 :D 

 

그러나, 이러한 특징은 코드가 길어졌을 경우

이미 선언했던 변수인지, 나중에 그러면 

특정 변수명을 썼을 때 어떤 값이 출력될지 알 수 없는.. 혼동이 올 수 있습니다 

 

그에 따라 나온 것이

let과 const 입니다 :D 

 

위와 똑같이 쓰되

이번에는 let을 통해서 변수를 선언했는데요!

var의 경우와 달리

변수가 이미 선언되었다(has already been declared)라고 에러 메시지가 뜹니다(해보시면 const도 마찬가지로 에러가 뜹니다)

 

그렇다면!

let과 const의 차이는 무엇일까요??

 

둘은

mutable ||  immutable 

즉, 변경가능한지, 변경불가능한지에 따라 구별된다고 할 수 있습니다 :D 

 

먼저,

let을 보시면

이런식으로 변수에 할당된 값(목요일)을 수정할 수 있습니다(수요일로) => mutable(변할 수 있는)

 

그러나, 간단한 정보인 요일 정보와 달리

예를 들어,

웹사이트에서 가지고 있는

회원정보, 중요 회계 자료 등을 

변수에 할당해서 쓴다고 할 때

 

구체적인 예시로, 

금융감독원이 공개하는 공시정보를 

개발자가 참조(reference)했다고 했을 때

let으로 변수가 선언되고, 할당되어 있다면??

실수로 개발자가 참조한 변수를 통째로 날리거나, 마음대로 수정한다면

실제로 금감원의 정보에도 그 수정사항이 반영되어

정보가 날아가게 될 수 있습니다 

 

그러면 그럴 때는?

immutable(변경 불가능한)

한 const를 통해서 변수를 선언, 할당해줘야

참조한 쪽에서 마음대로 값을 수정할 수 없습니다  

 

이를 보시면,

const로

importantInformation(중요 정보)라는 변수에

중요한 "공시정보" 문자열을 할당해두었습니다.

 

그런데, 공시정보를 참조해서 쓰던 제가(용기러기)

제 블로그의 방문자수 정보를 구경하다가

모르고 공시정보를 담아온 변수에 저의 정보를 할당해버렸습니다 ...

그러나, 

다행히도 변수가 constant(변함없는) 변수이기에

저의 시도는 에러로 저지가 됐습니다..ㅎㅎ

 

정리해보면!

 

var은 옛날에 나온 선언 문법으로

간단하게 뭔가를 테스트해볼 때 쓰거나, 쓰지 않는 것이 좋고!

 

let과 const는 var의 단점 때문에 나온 문법으로

둘다 변수의 선언 문법이지만

let은 mutable하고, const는 immutable하기 때문에

let은 상대적으로 덜 중요한 정보를 담을 때 혹은 유동적인 정보(수시로 바꿔줘야하는 정보)를 담을 때 쓰면 좋을 것 같습니다

이에 반해, const는 중요한 정보 그리고 정적인, 즉, 한번 설정하면 고칠일이 없는 정보를 담을 때 쓰면 좋을 것 같습니다.

(*이 때, const 변수를 복사해서 고쳐서쓰는 것에는 문제가 없습니다 :D)

 

 여기까지 var, let, const를 비교하며 특징을 알아봤습니다:D

 

감사합니다:D