자바스크립트

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