자바스크립트
var, let, const의 차이
kenzi
2022. 3. 31. 00:26
자바스크립트에서 변수를 선언할 때
let은 변수를 업데이트, 수정할수도 있지만
const는 상수로 정하는 것이기 때문에 수정 불가능하다
즉 let으로 설정된 변수는 나중에 바뀔수도 있다는 것을 알고 코드를 읽으면 의도파악하기가 쉽다
그럼 let과 var은 둘다 업데이트 가능하다는 점에서 똑같은거 아닌가?
---> X
왜? let은 재선언 불가, 재할당만 가능
var은 재선언 가능, 재할당도 가능 ---> 재선언이 가능하다는 것은 다른 사람이 내가 사용한 변수명을 모르고 똑같이 사용했을 경우 에러 없이 그대로 넘어가기 때문에 문제가 된다
let a = b;
let a = c; // let 자체를 재선언? 불가능
a = c; //재할당은 가능
var a = b;
var a = c; // var 자체 재선언 가능
a = c; //재할당도 가능
const a = b;
const a = c; // const자체 재선언? 불가능
a = c; // 재할당도 불가능
정리하면
let은 한번 선언 후에 값이 수정될수도 있음
const는 한번 선언 후 값 수정 불가. 불변의 상수(constant 상수)
var은 한번 선언후에 값이 수정될 수도 있고 여러번 선언해서 수정해도 ok (variable 변수)
let은 재선언 X, 재할당 O
const는 재선언 X, 재할당X
var은 재선언 O, 재할당 O
그럼 변수를 쓸 때 어떤걸 써야해?
항상 const를 쓰고 수정할 가능성이 있는건 let으로! var는 절대 쓰지 말자
always const
sometimes let
never var