자바스크립트의 스코프

자바스크립트에서 스코프의 개념은 매우 중요합니다. 이 개념을 잘 이해하고 있어야 자바스크립트만의 특징인 클로저호이스팅을 잘 이해할 수 있습니다.

1. 스코프

프로그래밍을 조금이라도 접해보셨다면 스코프에 대한 이해는 수월하실 겁니다.

1.1. 스코프의 정의

  • 스코프는 변수와 상수, 매개변수가 언제 어디서 정의되는지 결정합니다.
  • 보통 유효 스코프(스코프의 범위)는 중괄호({}) 혹은 블록 단위로 쉽게 이해할 수 있습니다.
  • 자바스크립트의 스코프는 정적입니다. 즉, 소소 코드(어휘적, lexical)를 보고 스코프의 범위를 알 수 있습니다.

    • 정적 스코프의 종류에는 전역 스코프, 블록 스코프, 함수 스코프 이렇게 크게 세 가지가 있습니다.

1.2. 전역 스코프(global scope)와 블록 스코프(block scope)

1. 전역 스코프(global scope)
  • 전역 스코프에 선언한 모든 것들은 프로그램의 모든 스코프에서 볼 수 있습니다.
  • 즉, 아무 함수 호출 없을 때의 실행 흐름은 바로 전역 스코프에 있습니다.
2. 블록 스코프(block scope)
  • 블록 스코프(block scope)는 함수, 클래스 내부에 let, const로 선언한 식별자들을 의미합니다.
  • -
// 전역 변수
const name = 'lee'

function sayHi() {
  console.log(`Hi, ${name}`)
  // Hi, lee
}

junism
Written by@junism
interested in FE esp ReactJS

GitHub