본문 바로가기

공부/TIL

var, let, const의 차이는?

var, let, const는 변수를 선언하기 위한 키워드이며 버전에 따른 차이가 있습니다.

 

es6 이전에는 모두 var 키워드로 변수를 선언했고 편리했지만 단점을 발생시켰습니다

 

es6 이후 let과 const 키워드가 생겨난 후, 더 이상 var 키워드는 사용하지 않는 것이 좋으며

 

대표적인 차이는 호이스팅 되는 방식입니다.

 

var 키워드는 함수 레벨 스코프를 지원하며 let, const 키워드는 블록 레벨 스코프를 지원합니다

 

let 과 const의 차이는 재할당이 가능 여부인데 let은 가능 const는 불가능합니다.

 

---

 

var의 단점:

 

- 함수 레벨 스코프

- var 키워드 생략 허용

- 변수 중복 선언 허용

- 변수 호이스팅

- 긴 생명주기

- 암묵적 결합

- 스코프 체인 상 종점에 위치

- 네임스페이스 오염

  외우려 하지 마세요, 왜냐 var 키워드는 더 이상 사용하지 않고, 자바스크립트 언어를 이해한다면 자연스러운 이야기니까요.

 

---

 

파생되는 예상 질문

 

호이스팅이란? -> 호이스팅 편 참조

함수 레벨, 블록 레벨 스코프란? 스코프 편 참조

var는 안 쓰고 let, const 쓴다고 하셨는데 재할당 여부를 모른다면 어떻게 사용하시나요?

 

저는 const를 먼저 사용해서 코딩을 한 후, 최대한 재할당을 피하되 피할 수 없는 경우 let을 사용하는 방식을 쓰고 있습니다.

 

반응형

'공부 > TIL' 카테고리의 다른 글

연산자,조건문,형변환  (0) 2019.05.07
변수 ~ 연산자  (0) 2019.05.03
자바스크립트, 동작원리  (0) 2019.05.01
자바스크립트와 ES의 차이  (0) 2019.04.30
2019-0429  (0) 2019.04.29