함수 레벨 스코프, 블록 레벨 스코프, 글로벌 스코프

meek·2023년 2월 22일
0

TIL

목록 보기
16/24

JavaScript에서 변수 선언 방식인 var, const, let에 대해 정리하다 보니 함수 레벨 스코프, 블록 레벨 스코프, 글로벌 스코프에 대해 알아둬야할 것 같아 정리하게 되었다.

💡 스코프
변수와 함수가 유효한 범위

함수 레벨 스코프(Function-level scope)

  • var로 선언된 변수는 함수 내에서 선언되면 해당 함수 내부에서만 유효함
  • 함수 내부에서 선언된 변수는 함수 외부에서 접근할 수 없음
  • 함수 외부에서 선언된 변수는 함수 내부에서 접근할 수 있음

블록 레벨 스코프(Block-level scope)

  • let, const로 선언된 변수는 해당 블록 내에서만 유효함
  • 블록 레벨 스코프는 for, if, switch 등의 블록문 안에서 유효함
  • 블록문 외부에서 선언된 변수는 블록문 안에서 접근할 수 있음

글로벌 스코프(Global scope)

  • 함수나 블록문 내부가 아닌 스크립트 최상위에 선언된 변수는 전역 변수(Global variable)
  • 전역 변수는 스크립트 어디에서든지 접근할 수 있음
  • 전역 변수는 가능한 사용하지 않는 것이 좋음 -> side effect 현상

공통점

  • 스코프는 변수와 함수의 유효 범위를 나타냄
  • 스코프는 중첩될 수 있음
  • 내부 스코프에서는 외부 스코프에 있는 변수를 접근할 수 있음
  • 외부 스코프에서는 내부 스코프에 있는 변수를 접근할 수 없음

차이점

  • 함수 레벨 스코프는 함수 내에서 선언된 변수만 해당 함수 내에서 유효함
  • 블록 레벨 스코프와 글로벌 스코프는 블록 내에서 선언된 변수와 전역 변수도 유효함
  • 글로벌 스코프는 스크립트 전체에서 유효하며, 함수 레벨 스코프와 블록 레벨 스코프는 해당 함수나 블록 내에서만 유효함
profile
hello, world!

0개의 댓글