JavaScript | 스코프(scope)

블로그 이사 완료·2023년 2월 28일
0
post-thumbnail

자바스크립트에서 스코프(scope)는 변수와 함수의 유효 범위를 결정한다.
즉, 변수나 함수가 어디에서부터 접근 가능한지를 결정하는 것이다.
자바스크립트에서는 다음과 같이 두 가지 유형의 스코프가 있다.

전역 스코프(Global Scope)

전역 스코프는 어떤 함수나 블록에도 속하지 않는 최상위 스코프다.
전역 스코프에서 선언된 변수와 함수는 어디서든 접근이 가능하다.

const globalVar = 'global variable'; // 전역 스코프에서 선언된 변수

function globalFunction() { // 전역 스코프에서 선언된 함수
  console.log(globalVar); // 'global variable' 출력
}

globalFunction();

지역 스코프(Local Scope)

지역 스코프는 특정 함수나 블록 내부에서 선언된 변수와 함수가 유효한 범위다.
지역 스코프 내부에서 선언된 변수와 함수는 해당 지역 스코프 내부에서만 접근이 가능하다.

function localFunction() { // 지역 스코프에서 선언된 함수
  const localVar = 'local variable'; // 지역 스코프에서 선언된 변수
  console.log(localVar); // 'local variable' 출력
}

localFunction();
console.log(localVar); // ReferenceError: localVar is not defined

블록 스코프(Block Scope)

let과 const를 사용하여 블록 스코프(block scope)를 생성할 수 있다.
블록 스코프는 중괄호({})로 묶인 코드 블록 내부에서만 유효한 범위를 가진다.

{
  let blockVar = 'block variable'; // 블록 스코프에서 선언된 변수
  console.log(blockVar); // 'block variable' 출력
}

console.log(blockVar); // ReferenceError: blockVar is not defined

마무리

기술면접 때 중괄호로만 묶어도 블록스코프가 되냐는 질문이 있었다.
if문, for문 등 문(statement)로 감싸진 것들이 블록 스코프를 가지기 때문에 중괄호({})만 있어도 가능 할 것 같다고 판단해서 가능하다고 대답했다.

profile
https://kyledev.tistory.com/

0개의 댓글