[Intermediate] 변수 유효범위

OROSY·2021년 3월 24일
0

JavaScript

목록 보기
17/53
post-thumbnail

1. 변수 유효 범위(Variable Scope)

1) let, const

  • 블록 레벨의 유효 범위
  • 블록 레벨: 변수가 선언되어져 있는 범위의 중괄호 내의 부분
    function scope () {
      if (true) {
        const a = 123
        console.log(a) // 값: 123
      }
    }
    scope()
    
    function scope () {
      if (true) {
        const a = 123
      }
      console.log(a) // ReferenceError
    }
    scope()
    
    function scope () {
      if (true) {
        console.log(a) // 값: undefined
        const a = 123
      }
    }
    scope()

2) var

  • 함수 레벨의 유효 범위
  • 함수 레벨: 함수 범위 안에서는 어디서든 사용 가능
  • 의도하지 않은 범위에서 변수 사용이 가능해져 메모리 누수 발생
    function scope () {
      console.log(a) // 값: undefined
      if (true) {
        var a = 123
      }
    }
    scope()
    
    function scope () {
      if (true) {
        console.log(a) // 값: undefined
        var a = 123
      }
    }
    scope()
    
    function scope () {
      if (true) {
        var a = 123
      }
      console.log(a) // 값: 123
    }
    scope()
profile
Life is a matter of a direction not a speed.

0개의 댓글