728x90
변수의 유효범위 Variable Scope
🚨 let, const
let, const는 블록 레벨의 유효 범위를 가진다.
블록의 범위는 변수가 선언된 중괄호 안을 의미한다.
📍 중괄호 밖으로 벗어날 경우 Error
function scope() { if (true) { const a = 123 } console.log(a) } scope() |
📍 값이 할당되는 코드보다(변수보다) 먼저 출력될 경우 -> undefined
function scope() { if (true) { console.log(a) const a = 123 } } scope() |
🚨 var
var는 함수 레벨의 유효 범위를 가진다. 값이 지정대기 전에 사용되면 undefiend가 뜨는 건 동일하다.
레벨이 커짐으로 인해 의도하지 않은 범위에서 사용될 수 있으며 개발자가 확인하지 못하는 메모리 누수로 발전될 수 있으므로 블록레벨의 유효범위를 가지도록 관리하는 것이 효과적, 현재는 잘 사용하지 않는다.
📍 함수 레벨 안에서 정상적으로 작동
function scope() { if (true) { var a = 123 } console.log(a) } scope() |
728x90
'FE' 카테고리의 다른 글
함수 예약어 / 매개변수parameters와 인수arguments / 반환return / 객체데이터와 메소드method (0) | 2021.11.06 |
---|---|
형 변환, if조건문의 true와 false를 의미하는 데이터 타입 (0) | 2021.11.06 |
반복문 For / 조건문 IF와 SWITCH 차이점 (0) | 2021.11.05 |
연산자 산술/할당/비교/일치/논리/삼항 (0) | 2021.11.05 |
Parcel, 데이터 타입, Export default, import (0) | 2021.11.05 |