스코프

·2023년 4월 25일
0

study

목록 보기
64/81
post-thumbnail

스코프(scope)

스코프의 정의는 “식별자 접근 규칙에 따른 유효 범위”이다.

식별자(변수, 함수, 클래스)에 접근할 수 있는 범위가 존재한다.

범위는 중괄호(block scope) 또는 함수(function scope)에 의해 나눠진다. 그 범위를 스코프라고 부른다.

  • 안쪽 스코프에서 바깥쪽 스코프로 접근할 수 있지만 반대는 불가능
  • 스코프는 중첩이 가능하다.
  • 전역 스코프와 지역 스코프
  • 지역 변수는 전역 변수보다 우선순위가 더 높다.

스코프의 종류

스코프의 두가지 종류 블록 스코프와 함수 스코프가 있다.

주의해야 할 점은 화살표 함수는 함수 스코프가 아니라 블록 스코프이다.

var const let

  • var : 변수의 재선언/재할당 모두 가능, Hoisting이 되어 변수를 선언하기 전에 참조할 수 있다. 유효 범위 : 함수 스코프

  • let: 변수의 재선언은 불가능하나 재할당은 가능, 변수를 선언하기 전에 참조할 수 없으나, 변수를 선언할 시 할당을 반드시 할 필요는 없다. 유효 범위 : 블록 스코프 / 함수 스코프

  • const: 변수의 재선언/재할당 모두 불가능, 변수를 선언하기 전에 참조할 수 없으며, 변수를 선언할 시 할당을 반드시 해야 한다. 유효 범위 : 블록 스코프 / 함수 스코프

블록 스코프 안에서 let과 const 키워드로 선언한 변수는 스코프 안에서만 참조 가능하다.

그런데 var 키워드로 선언한 변수는 블록 스코프를 무시하고 스코프 울타리 밖에서도 접근 가능하다. (var는 Only 함수 스코프만 따른다.)

그러나 블록 단위로 스코프를 구분했을 때, 훨씬 더 예측 가능한 코드를 작성할 수 있으므로 let, const 키워드의 사용이 권장된다.

profile
개발자 꿈나무

0개의 댓글