TIL_220804(?.)

nevermind·2022년 8월 4일
0
post-custom-banner

옵셔널 체이닝 '?.' 이란?

옵셔널 체이닝(optional chaining) ?.을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있습니다.

등장배경

중첨 객체의 특정 프로퍼티에 접근하기 위해서 보통 AND연산자를 통해 실제 해당 객체 프로퍼티가 있는지 확인하여 사용 했었는데 AND 연산자를 사용하면 코드가 길어진다는 단점이 있어 보완하고자 등장하게 되었다.

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

옵셔널 체이닝을 남용하지 말라고 경고한다. 이유는 에러를 조기에 발견하지 못하고 디버깅에 어려움이 생길 수 있다고 한다.

'?.'은 변수 앞에 선언 되어 있어야 한다.

출처: 항해99 같은 팀원분의 정리

아래는 블로그 참조

const nestedProps = obj.first && object.first.name
이처럼 중첩구조를 가진 object에서 객체의 속성값을 찾기 위해선 이런식으로 참조를 확인하여야 했었다.  논리 연산자 &&를 이용하여 좌항 연산자가 truty한 경우에만 object.first.name을 불러올 수 있었다.

하지만 이를 간단히 하여서 

const nestedProps = obj.first?.name;
으로 표현하여 first의 값이 존재하면 name을 반환하고 없으면 undefined를 반환한다.

이를 풀어서 해석하면
const nestedProp = ((obj.first === null || obj.first === undefined) ? undefined : obj.first.name);
이런 식이 될 수 있겠다.

출처: https://rootjang-dev.tistory.com/2 [루트장의 Dev 일기:티스토리]


uuid 변환 관련

  • uuid로 변환 후 갑자기 투두리스트의 상세보기 내용이 안나왔다.
    그 이유는 원래의 uuid의 타입이 string이 되었기 때문에!!!!!
    typeof도 항상 신경쓰자!!
profile
winwin
post-custom-banner

0개의 댓글