찌우닝 2022. 12. 28. 19:28

팀원분이 filter 함수를 쓰려고 했는데 적용이 되지 않아서 찾아보시고 옵셔널 체이닝을 쓰니 적용이 됐다고 했다.

저 물음표가 뭐길래 되는건지 궁금해서 찾아보았다.

?. 은 ?. '앞'의 평가 대상이 undefined나 null이면 평가를 멈추고 undefined를 반환한다.

연산자는 아니고 함수나 대괄호와 함께 동작하는 특별한 문법 구조체라고 한다.

?. 를 계속 연결해서 체인을 만들면 중첩 프로퍼티들에게 안전하게 접근할 수 있다.

그러나 남용은 금물! 왼쪽 평가대상이 없어도 괜찮은 경우에만 선택적으로 사용해야 함!!

옵셔널 체이닝 문법 ?. 세 가지 형태

1. obj?.pro : obj가 존재하면 obj.prop을 반환하고, 그렇지 않으면 undefined를 반환함
2. obj?.[prop] : obj가 존재하면 obj[prop]을 반환하고, 그렇지 않으면 undefined를 반환함
3. obj?.method() : obj가 존재하면 obj.method()를 호출하고, 그렇지 않으면 undefined를 반환함