맨 처음 자바스크립트를 배울 때 (ES6 나오기 전), var만 있던 것을 기억한다. 그리고 ES6가 나오고 const와 let이 등장한 걸로 안다.
VAR
var가 function 밖에서 선언되었을 경우에는 코드 전역에서 변수가 자유롭게 변환이 가능하다. 만약 function 내에서 선언되었을 경우의 scope는 그 function 안으로 제한된다 - 즉 function 밖에서 var 변수를 쓸 수가 없다.
또한 var의 경우, 코드 전역에서 변수 변환이 가능하여 미리 선언된지 모른채 다시 사용하게 되었을 때는 문제가 발생할 수 있다.
LET
let의 경우, 이전 글 https://dongjindev.tistory.com/81 에서도 노트해놓았듯 block scoped라는 특징이 있다. 여기서 block이란 {} 을 나타낸다.
var와 let의 공통점으로는 변수 변환이 가능하다는 점이다. let은 같은 scope 내에서 var와 같이 데이터 변경을 할 수 있다. 하지만 차이점은 let은 재선언이 불가능하다는 것이다.
CONST
const는 var와 let과 다르게 변수 변환이 불가능하며, 역시 재선언 또한 불가능하다.
개발 프로젝트를 곧 맡게 될 것 같은데 주로 자바스크립트를 다룰 것 같아 백투베이직이란 컨셉으로 복습을 하고 있다.
가장 쉬운 방법으로 노마드 코더 무료 강의를 보면서 기억을 되살리고 있고, 지금 생각하고 있는 아이디어로 작은 프로젝트도 만들어 볼 생각이다.
수강 중인 강의에서는 const를 주로 쓰고, let을 가끔 쓰고, var는 거의 쓰지 말라고 가르친다. 변수는 나중에 크게 바뀔 가능성이 낮고, 또한 코드가 길어질 때 변수 변환이 가능한 유형을 쓸 경우 발생할 수 있는 문제를 미연에 방지하고자 그렇게 조언하는 것 같다. 대부분의 개발자들이 이런 관례를 갖고 있다고 하니 참고할만 하다.