user.address
접근 → TypeError 발생user && user.address && user.address.street
user?.address?.street
?.
을 체인을 만들어 사용하면 중첩 요소들에 안전하게 접근 가능undefined
나 null
이면 undefined
반환 후 평가 종료?.
앞의 대상만 평가하며 평가 종료 후 뒤의 동작은 작동X
논리상 존재하지 않아도 괜찮은 대상에만 선택적으로 사용
user?.address.street
(X)
user.address?.street
(O)선언이 완료된 변수를 대상으로만 동작 → 아닐 시 ReferenceError 발생
참고