Scope

Hunter_Joe·2023년 4월 1일
0

JavaScript

목록 보기
8/10
post-thumbnail

Scope

  • Scope는 변수에 접근할 수 있는 범위
{
  let msg = "안녕하세요."; 

  console.log(message); // 안녕하세요.
}

alert(message); // Uncaught ReferenceError: message is not defined
  • 코드 블록 {...} 안에서 선언한 변수는 블록 안에서만 사용할 수 있다.
  • 모든 변수는 스코프를 갖는다.

Global Scope / Global Variable

전역 스코프(global)는 어디에서든 해당 변수에 접근 가능 (전역변수)

let global = "global";

function hello() {
  let local = "local"
  console.log(global);
  console.log(local);
}

hello();

console.log(global);
console.log(local); // Uncaught ReferenceError: local is not defined
  • 반면 함수 스코프 밖에서 작성된 전역변수 let global = "global"은 함수 내부, 외부에서 작동

Local Scope / Local Variable

지역 스코프(local)의 경우, 한정적인 범위(Code Block)에서 해당 변수에 접근이 가능하다. (지역변수)

let global = "global";

function hello() {
  let local = "local"
  console.log(global);
  console.log(local);
}

hello();

console.log(global);
console.log(local); // Uncaught ReferenceError: local is not defined
  • 함수 스코프안에서 작성된 지역변수let local = "local"은 함수 외부에서는 실행되지 않음

⚠️CAUTION

  • 전체 서비스에서 공통으로 바라봐야하는 서비스를 제외하고는 지역변수를 쓰는 습관 권장
  • 전역변수가 많아지면 관리가 어려워진다.
  • 함수에 특화된 지역변수 사용 권장
profile
hunting season

0개의 댓글