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

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으로 선언하여 예상 밖의 변수 값의 변경을 차단하는 것이 가장 적절하다.

좋은 웹페이지 즐겨찾기