[면접대비 예상꼬리질문] var, let, const의 차이점

임정민·2022년 4월 3일
0
post-thumbnail

var, let, const의 차이점에 대해서 설명해주세요.

ES6 이전 변수 선언문 var에는 치명적인 문제가 있는데, 바로 중복 변수 선언 문제입니다.

중복 변수 선언이란?

var a = 3
console.log(a) // 3
var a = 4
console.log(a) // 4

동일한 변수명을 재 선언할 수 있게 하는 것인데, 이 문제를 해결하기 위해서 ES6에는 let과 const가 도입되었습니다.

중복 변수 선언이 뭐가 문제죠?

위와 같은 예에서는 큰 문제가 아니지만, 프로젝트의 규모가 커지면 개발자가 실수로 동일한 변수 명을 사용할 수도 있습니다.


var a = 2
var result = 0

for(var a = 0; a< 3; a++){ // a를 재선언하여 위의 a가 소멸됨
	result += a
}

console.log(a)// 3



위와 같은 상황이면 a가 예상과 다른 결과 값이 나오게 됩니다. 이러한 개발자의 실수를 차단하기 위해 도입된 것이라 이해하면 될 것 같습니다.

그렇다면 let과 const의 차이점은 무엇인가요?

let은 변수 값 변경 가능, const는 변수 값 변경 불가합니다.


let i = 0
i = 3 // it's ok

const i = 0
i = 3 // ?

let과 const중 어느 것으로 변수를 선언하는 것이 적절할까요?

불필요한 변수 값이 변경되는 것을 막기 위해 기본적으로 변수를 const로 선언하고 변경이 필요한 변수는 let으로 선언하여 예상 밖의 변수 값의 변경을 차단하는 것이 가장 적절합니다.

0개의 댓글