Variables declared with the let statement, constants declared with const will be block-scoped.
전역
- 최상위에 변수와 함수를 놓으면, 어디서나 액세스 할 수있는 전역이 됩니다.
- 다른 JS 파일에 썼다고해도, 마찬가지로 글로벌스코프(전역) 취급됩니다.
함수 범위
- function 안에 쓰여진 변수 · 함수는 내부에서만 변경 참조 할 수 있습니다.
- 외부에서 참조 할 수 없으므로 변경에 강한 모듈을 만들수 있습니다.
var
- Rollup 어디서나 선언 가능
- JavaScript는 함수내 어디서나 var 선언을 쓸 수 있습니다.
- 함수의 어디에서 선언해도, 선두에 정의 된 것으로 간주합니다.
- 시작 부분에서 사용하고 싶은 변수는 모두 정의하는 것이 정석.
- 함수 범위
- 함수 내 어느 곳에서나 볼 수
let
- 블록 범위
- 지금까지 var 로 쓴 것은 let로 대체
- if, for 등의 {} 내의 블록에서만 사용되는 블록 범위를 만들 수 있으므로 범위를 좁게 할 수 있기 위해 영향 범위를 좁혀진다
- 변수의 롭업은 기존대로 일어납니다.
const
- 다시 할당이 불가능한 변수 (즉 상수 Constants)
- 다시 할당하려고하면 오류
- let과 같은 블록 범위
- 대부분은 중복 지정은 필요 없으므로 const를 사용
- const를 사용하여두면 값이 변경 될 수 없기 때문에, 자연히 코드의 가독성도 올라갑니다.
- for 반복자 같은 재 할당이 필요한 곳에서만 let을 사용
정리
let과 var의 구분
var는 과거의 유산ㅠ 호환성을 위해 var 를 쓰고 있는 것에 지나지 않기 때문에, 사용하지 않는 것이 가장 좋습니다.
대부분은 중복 지정은 필요 없으므로 const를 사용
변하지 않는 값이라면 const 를 쓰면 됩니다.
- const를 사용할 경우는 우선 const를 사용
- 그 이외에서는 let을 사용
라는 느낌입니다.