FE
변수의 유효범위 let, const, var 차이점
SIOT IEUNG
2021. 11. 6. 00:18
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