Scope

rlatjsdn147·2022년 6월 25일
0

Posting

목록 보기
33/60

스코프(scope), 쉽게말하면 범위이다.

어떠한 식별자에 접근규칙에 따른 유효범위이기도하다.

예를들면,

for(let i=0; i<10; i++) {
  console.log(i);
}
// 전역스코프에서 선언한 변수 i 는 존재하지 않음으로 아래에서 ReferenceErrer을 일으킨다.
console.log(i); // ReferenceErrer

간단하게 이정도가 되겠다. 스코프에는 몇가지 규칙이 존재하는데,

  1. 바깥쪽 스코프에서 선언한 식별자는 안쪽 스코프에서 사용 가능하다.
    반면, 안쪽에서 선언한 식별자는 바깥쪽 스코프에서는 사용할 수 없다.
  2. 스코프는 중첩이 가능하다.
    스코프는 마치 중첩된 울타리와도 같다.
  3. 전역 스코프와 지역 스코프
    가장 바깥쪽의 스코프를 전역 스코프(Global Scope)라고 부른다.
    전역이 아닌 다른 스코프는 전부 지역 스코프(Local Scope)이다.
  4. 지역 변수는 전역 변수보다 우선순위가 더 높다.
    전역 스코프에서 선언한 변수는 전역 변수이다.
    지역 스코프에서 선언한 변수는 지역 변수이다.
    지역 변수는 전역 변수보다 더 높은 우선순위를 가진다.

스코프의 두가지 종류 블록 스코프와 함수 스코프가 있다.
화살표 함수는 함수 스코프가 아니다.

변수 선언의 키워드 간데도 차이점이 존재하는데 다음과 간다.

  • const
    유효 범위 : 블록 스코프 / 함수 스코프
    값 재할당 : 불가능
    재선언 : 불가능
  • let
    유효 범위 : 블록 스코프 / 함수 스코프
    값 재할당 : 가능
    재선언 : 불가능
  • var
    유효 범위 : 함수 스코프
    값 재할당 : 가능
    재선언 : 가
profile
생각은 나중에..

0개의 댓글