옵셔널 체이닝 문법 ?.
은 세 가지 형태로 사용할 수 있습니다.
obj?.prop
– obj
가 존재하면 obj.prop
을 반환하고, 그렇지 않으면 undefined
를 반환함obj?.[prop]
– obj
가 존재하면 obj[prop]
을 반환하고, 그렇지 않으면 undefined
를 반환함obj?.method()
– obj
가 존재하면 obj.method()
를 호출하고, 그렇지 않으면 undefined
를 반환함여러 예시를 통해 살펴보았듯이 옵셔널 체이닝 문법은 꽤 직관적이고 사용하기도 쉽습니다. ?.
왼쪽 평가 대상이 null
이나 undefined
인지 확인하고 null
이나 undefined
가 아니라면 평가를 계속 진행합니다.
?.
를 계속 연결해서 체인을 만들면 중첩 프로퍼티들에 안전하게 접근할 수 있습니다.
?.
은 ?.
왼쪽 평가대상이 없어도 괜찮은 경우에만 선택적으로 사용해야 합니다.
꼭 있어야 하는 값인데 없는 경우에 ?.
을 사용하면 프로그래밍 에러를 쉽게 찾을 수 없으므로 이런 상황을 만들지 말도록 합시다.