개발자 Saaad
[JavaScript] var, let, const 유효한 참조 범위(scope) 본문
유효한 참조 범위 (Scope)
var | 함수 레벨 스코프 (function-level scope) |
let / const | 블록 레벨 스코프 (block-level scope) |
var (function-level scope)
- 함수 내에서 선언된 변수는 함수 내에서만 유효합니다.
(함수 내에서는 블록 내외부에 관계없이 유효합니다)
- 하지만 함수 외부에서는 참조할 수 없습니다.
사진을 살펴보면 변수 a는 var로 if블록 안에서 선언되었으나, 블록을 벗어나서도 정상적으로 값이 출력되는 것을 확인할 수 있습니다.
함수 수준의 스코프를 가지고 있기 때문에 함수 외부에서 console.log(a) 또한 동작하지 않습니다.
let / const (block-level scope)
- 함수, if문, for문, while문, try/catch문 등의 모든 코드 블록 내부에서 선언된 변수는 코드 블록 내에서만 유효하며
코드 블록 외부에서는 참조할 수 없습니다.
사진을 살펴보면 변수 a는 let으로 if 블록 안에 선언되어있습니다. 블록밖의 console.log(a)는 동작하지 않는 것을 볼 수 있습니다.
함수 밖의 console.log(a); 는 당연히 동작하지 않습니다.
const도 let과 마찬가지로 동작합니다.
결론
scope는 작은 것이 좋다. 관리하기가 용이하다.
scope가 너무 넓어지면 여기저기서 참조하기 때문에 관리가 힘들어진다.
왠만하면 var를 사용하지 말고, let, const를 사용하도록 하자.
'학습 > kakao X goorm 풀스택12회차' 카테고리의 다른 글
[JavaScript] 타입(type) (0) | 2024.11.27 |
---|---|
[JavaScript] 호이스팅(Hoisting) (0) | 2024.11.27 |
[JavaScript] var, let, const (0) | 2024.11.27 |
[CSS]Grid CSS (중요) (0) | 2024.11.22 |
[CSS]Flexbox 관련 CSS (중요) (0) | 2024.11.18 |