스코프 Scope

gigi·2022년 7월 11일
0

스코프 Scope

자바스크립트에서 스코프는 변수가 유효할 수 있는 범위이며 일반적으로 중괄호로 감싸진 영역을 말한다.
핵심만 말하자면, 스코프는 변수의 수명을 결정하고 확인할 수 있는 범위이다.

스코프는 크게 Local Scope와 Global Scope로 나눌 수 있다.
Global Scope는 최상단의 스코프로써 이 곳에서 선언된 변수(전역 변수)는 어떤 영역에서든 접근이 가능하다.
Local Scope는 Global Scope에 포함되어 있는 영역으로 이곳에서 선언된 변수(지역 변수)는 전역(Global)에서 선언된 변수보다 더 높은 우선순위를 가진다.

let age = 10;
function printAge() {
  let age = 15;
  console.log(age); 
}
printAge(); // 15

앞서 언급한 Global / Local 두 스코프에서의 변수들 간에는 반드시 지켜야 하는 규칙이 있다. 바로 각 영역에서 선언된 변수들끼리의 접근 가능 여부이다.
Local Scope에서 선언된 변수는 Global Scope에선 참조가 불가능하다. 하지만 Global Scope에서 선언된 변수(전역 변수)는 Local Scope에서 참조가 가능하다. (밖에서 안에 있는 값은 건들 수 없지만, 안에서 밖에 있는 값은 건들 수 있다)

let global = "Global";
function checkAccess() {
  let local = "Local";
  console.log(global);
}
checkAccess(); // 'Global'
console.log(local); // ReferenceError

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

함수 내에서 선언된 변수는 함수 내에서만 유효하며 함수 외부에서는 참조할 수 없다. 즉, 함수 내부에서 선언한 변수는 지역 변수이며 함수 외부에서 선언한 변수는 모두 전역 변수이다.

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

모든 코드 블록(함수,if문,for문,while문,try/catch문 등)내에서 선언된 변수는 코드 블록 내에서만 유효하며 코드 블록 외부에서는 참조할 수 없다. 즉, 코드 블록 내부에서 선언한 변수는 지역 변수이다.

0개의 댓글