키워드 선정 배경

Day08 미션을 수행하면서 함수형 프로그래밍과 관련된 ‘클로저', ‘고차 함수', ‘순수 함수', ‘모나드’ 등 여러 개념들에 대해 더 알아보고 싶었다.

따라서 함수형 프로그래밍을 키워드로 선정하여, 관련 개념들에 대해 깊게 탐구해보기로 했다.


진행 방법


학습 내용

클로저 (Closure)

스코프(Scope) : 식별자(변수 이름, 함수 이름, 클래스 이름 등)가 유효한 범위

const x = 1;

function foo() {
  const x = 10;
  bar();
}

function bar() {
  **console.log(x);**
}

foo(); // ?
bar(); // ?

위 예제의 실행 결과는 어떻게 될까?

두 가지 패턴을 예측해볼 수 있다.

  1. 함수를 어디서 호출했는지에 따라 함수의 상위 스코프를 결정한다. → bar 함수의 상위 스코프 = foo