반응형
옵셔널 체이닝(Optional chaining; ?.)
을 사용하면 중첩 객체에 안전하게 접근할 수 있다
이는 최신 문법이므로 구식 브라우저는 확인이 필요하다
예를 들어 다음과 같은 코드를 실행한다고 가정하자
exchange.links.website.map(~);
exchange의 객체 배열에서 links 혹은 website가 있을 수도, 없을 수도 있다고 한다면
우리는 다음과 같이 && 연산자를 통해 트리플 체크를 해주어야 한다
exchange.links && exchange.links.website && exchange.links.website.map(~);
이처럼 참조가 누락될 가능성이 있는 경우 옵셔널 체이닝으로 더 짧고 간단한 표현식이 생성된다
exchange.links?.website?.map(~);
. 대신에 ?. 연산자를 사용함으로써,
exchange.links.website에 접근하기 전에 exchange.links가 null 또는 undefined가 아닌 것을 확인한다
만약 null 또는 undefined라면 이 표현식은 곧바로 undefined로 반환된다
또한, 다음과 같이 옵셔널 체이닝으로 연산 뿐만 아니라 함수 호출, 배열 접근 등 역시 가능하다
let result = someInterface.customMethod?.();
let arrayItem = arr?.[42];
?? 연산자
|| 연산과 의미는 같지만,
0값이나 "" 값에서 true값을 반환하고
null, undefined에서만 동작하도록 한다
반응형
'JS, TS' 카테고리의 다른 글
[Javascript][ES5][ES6] Array map() / sort() / filter() / forEach() / includes() / push() / shift() / unshift() / findIndex() / fill() / flat() (0) | 2021.08.30 |
---|---|
[실습][Javascript] To Do List 만들기 (Nomad Coders) (0) | 2021.08.07 |
[Javascript] JS 자료형변환 (to String / to Number / to Boolean) (1) | 2021.07.21 |
[Javascript][ES5] Array reduce() (0) | 2021.07.20 |
[실습][Javascript] 마우스 클릭 연습 (0) | 2021.03.02 |