FRONT/JAVASCRIPT

[javascript] var 키워드의 문제점과 let, const 키워드

연듀 2021. 6. 20. 14:55

 

var 키워드로 선언한 변수의 문제점

 

  • 변수 중복 선언을 허용한다.
  • 함수 레벨 스코프 - 전역 변수를 남발해 의도치 않게 전역 변수가 중복 선언될 가능성이 있다.
  • 변수 호이스팅 - 프로그램 흐름상 맞지 않고 가독성을 떨어뜨리며 오류가 발생할 수 있다.

 

 

 

이러한 var 키워드의 단점을 보완하기 위해 ES6에서는 let과 const를 도입했다. 

 

 

 

 

let 키워드

 

  • 변수를 중복 선언하면 문법 에러가 발생한다.
  • 모든 코드 블록(함수, if문, for문, while문, try/catch문 등)을 지역 스코프로 인정하는 블록 레벨 스코프를 따른다.
  • 선언 단계와 초기화 단계가 분리되어 진행된다.
  • 전역 객체의 프로퍼티가 아니다.

 

 

const 키워드

 

특징은 let 키워드와 대부분 동일하므로(블록 레벨 스코프를 따름) let 키워드와 다른 점을 중심으로 살펴보자.

 

 

  • const 키워드로 선언한 변수는 반드시 선언과 동시에 초기화해야 한다.
  • 원시 값을 할당할 경우 재할당이 금지된 변수이다. (var, let은 재할당 가능)
  • 객체를 할당한 경우에는 값을 변경할 수 있다.

 

 

 

var / let / const

 

 

변수 선언에는 기본적으로 const를 선언하고 let은 재할당이 필요한 경우에 한정해 사용하는 것이 좋다.

 

const를 사용하면 의도치 않은 재할당을 방지해 좀 더 안전하기 때문이다.

 

일단 const를 사용하고 반드시 재할당이 필요하다면 그 때 const를 let으로 변경해 사용하도록 하자.