DBILITY

javascript optional chaining , nullish coaleasing 본문

front-end & ui/javascript

javascript optional chaining , nullish coaleasing

DBILITY 2022. 3. 30. 16:24
반응형

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Optional_chaining

 

Optional chaining - JavaScript | MDN

optional chaining 연산자 (?.) 는 체인의 각 참조가 유효한지 명시적으로 검증하지 않고, 연결된 객체 체인 내에 깊숙이 위치한 속성 값을 읽을 수 있다.

developer.mozilla.org

react-hook-form v7의 예제를 보니 저런게 있어 그냥 object?.property && "있으면 이거야" 로 이해하였으나, 확실히 알아야 하기에 찾아 봄. object && object.property && "있으면 이거야"와 같긴 한데..object내에 object의 property까지는 에디터에서 warning..Unresolved variable type..이럴때 다음이 있으니. object.property['property']로..에이 모르겠다 이게 추가된 이유군.이건 연산자가 아니다.그리고 short-circuit evaluation은 모두 알고 있다고 생각한다. 단지 착각하는게 문제.

optional chaining ( ?. )은 세 가지 형태로 사용 가능

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

?. 왼쪽 평가 대상이 null이나 undefined인지 확인하고 null이나 undefined가 아니라면 평가를 계속 진행.

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

?.은 ?.왼쪽 평가대상이 없어도 괜찮은 경우에만 선택적으로 사용해야.
꼭 있어야 하는 값인데 없는 경우에 ?.을 사용하면 프로그래밍 에러를 쉽게 찾을 수 없게 된다.

아래 블로그의 요약내용을 복사했음.

https://ko.javascript.info/optional-chaining

 

옵셔널 체이닝 '?.'

 

ko.javascript.info

nullish coaleasing operator라고 물음표 두개를 쓰는 것도 있다.

or연산자와 비슷하게 동작하나 왼쪽 값이 null or undefined인 경우만 사용 가능하다.

https://ko.javascript.info/nullish-coalescing-operator

 

nullish 병합 연산자 '??'

 

ko.javascript.info

 

반응형
Comments