[221124] 콜백 함수, ??, ?. 연산자

뜨개발자·2022년 11월 24일
0

TIL

목록 보기
13/75

콜백함수 다시보기

지난 번에, 콜백 함수란 다른 함수에 매개변수로 전달하는 함수라고 읽었다.
다른 책에 있는 표현이 더 정확한 것 같아 옮기자면, '다른 코드(함수 또는 메서드)에 인자로 넘겨줌으로써 제어권을 함께 위임한 함수'를 콜백 함수라고 한다.

  • 제어권을 넘겨받은 코드는 콜백 함수 호출 시점에 대한 제어권을 가진다.
  • 제어권을 넘겨받은 코드는 콜백 함수를 호출할 때 인자에 어떤 값들을 어떤 순서로 넘길 것인지에 대한 제어권을 가진다.
  • 콜백 함수는 결국 함수로서 실행된다.
  • 비동기 제어를 위해 콜백 함수를 사용하다 보면 콜백 지옥에 빠지기 쉽다.

nullish 관련 연산자 ??, ?.

  • nullish 병합 연산자 ??
    a ?? b와 같이 작성했을 때, anull 또는 undefined가 아니라면 a, 그렇지 않으면 b를 반환한다.
    안정성 이슈로, || 또는 &&과 같이 사용할 수 없다.

  • optional chain 연산자 ?.
    .과 유사하지만, 참조가 nullish(null 또는 undefined)라면 에러 대신 undefined를 반환한다.
    선언되지 않은 루트 객체에는 사용할 수 없지만, 정의되지 않은 루트 객체에는 사용할 수 있다.

    let start = 함수이름?.()

    위와 같이 사용하여 메서드를 찾을 수 없을 때, 에러 대신 undefined을 반환하도록 유도할 수 있다.

profile
뜨개질하는 개발자

0개의 댓글