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 |