TIL79-06 면접준비08: var, let, const

김태혁·2023년 4월 25일
0

TIL

목록 보기
172/205

var, let, const

  • var, let, const는 모두 JavaScript에서 변수를 선언할 때 사용하는 키워드입니다. var는 함수 스코프를 가지며, 변수 중복 선언이 가능하고 호이스팅이 일어납니다. let과 const는 블록 스코프를 가지며, 중복 선언이 불가능하며, const는 값이 변경될 수 없는 상수를 선언할 때 사용됩니다.

  • var는 중복 선언이 가능하고 호이스팅이 일어나기 때문에 ES6에서는 let과 const를 권장합니다. var는 변수의 유효 범위를 제한하지 않아서 의도치 않은 값 변경으로 인한 버그 발생 가능성이 있으며, 중복 선언이 가능하여 예상치 못한 결과가 발생할 수 있습니다. 또한 변수 호이스팅으로 인해 코드의 가독성이 떨어지고 디버깅이 어려워지는 문제가 있습니다. 따라서 let과 const를 사용하여 변수를 선언하고, 블록 스코프를 이용하여 변수의 유효 범위를 제한하는 것이 좋습니다.

함수 스코프와 블록 스코프

  • 함수 스코프는 변수의 유효 범위가 함수 내부에서만 적용되는 것을 말하며, 블록 스코프는 변수의 유효 범위가 중괄호({})로 둘러싸인 블록 내부에서만 적용되는 것을 말합니다. let과 const 키워드는 블록 스코프를 가지므로, 함수 스코프에서 발생하는 문제를 해결하고 코드의 가독성을 높입니다.

심화

  • var, let, const는 모두 JavaScript에서 변수를 선언할 때 사용하는 키워드입니다.
  1. var: ES5 이전에 사용되었던 변수 선언 방식입니다. 함수 스코프를 가지며, 변수를 중복 선언해도 오류가 발생하지 않습니다. 변수 호이스팅이 일어나기 때문에 변수 선언 전에 사용해도 오류가 발생하지 않습니다.

  2. let: ES6에서 추가된 블록 스코프를 가지는 변수 선언 방식입니다. 중복 선언이 불가능하며, 변수 호이스팅은 일어나지만 TDZ(Temporal Dead Zone) 때문에 선언 전에 사용하면 오류가 발생합니다.

  3. const: let과 비슷하지만 값이 변경될 수 없는 상수를 선언할 때 사용합니다. 선언 시 초기화가 필요하며, 중복 선언이 불가능합니다. 블록 스코프를 가지며, 변수 호이스팅은 일어나지만 TDZ 때문에 선언 전에 사용하면 오류가 발생합니다.

  • 따라서, 변수를 선언할 때는 가능하면 let 또는 const를 사용하는 것이 좋습니다. var는 더 이상 권장되지 않습니다.
profile
도전을 즐기는 자

0개의 댓글