Do it! HTML+CSS+자바스크립트 웹 표준의 정석
[예약어]
var
- 함수 레벨
- 재할당, 재선언 가능
- 함수 안에서 var 예약어를 빼고 선언하는 경우 전역 변수가 된다.
- 호이스팅: 자바스크립트 해석기는 함수 소스를 훑어보면서 var를 사용한 변수를 따로 기억해두기 때문에 마치 선언한 것과 같은 효과가 있다. 이것을 호이스팅 이라고 한다.
let
- 블록 레벨({})
- 재할당 가능, 재선언 불가능
- 전역 변수를 선언하고 싶다면 let을 쓰지 않고 변수 이름과 초깃값만 할당하면 된다.
- var와 달리 호이스팅이 없다.
const
- 블록 레벨({})
- 재할당 불가능, 재선언 불가능
결론
- 변수 때문에 생기는 오류를 줄이려면 let과 const를 사용하는 것이 좋다.
- 값이 자주 바뀌는 변수라면 let예약어를 사용하고, 재할당이 없는 변수라면 const를 사용하자.
- 전역 변수는 최소한으로 사용한다.
- var변수는 함수의 시작 부분에서 선언한다.
- for문에서 카운터 변수를 사용할 때는 var예약어를 사용하지 않는다. 대신, 블록 밖에서 var로 선언한거나 let예약어를 사용한다.