optional chaining

ES
ES2020
비고
오브젝트 프로퍼티 뎁스 탈 때, 유효성 검사 코드 생략 가능. const dogName = adventurer.dog?.name;
Tags

Optional chaining

체인의 각 참조가 유효한지 명시적으로 검증하지 않고도 깊숙이 위치한 속성 값을 읽을 수 있다.
참조가 Nullish(null, undefined)라면 표현식의 리턴 값은 undefined가 되며, 뒤에 체인은 타지 않는다.
const adventurer = { name: 'nightohl', dog: { name: 'Bin' }, hi:()=>console.log('hi'), }; const dogName = adventurer.dog?.name; // 'Bin' const catName = adventurer.cat?.name; // undefined adventurer.someNonExistentMethod?.(); // undefined adventurer.hi?.(); // 'hi'

예시

obj.first 프롭에 값이 있다면 obj.first.second 값을 참조하고 싶어!
obj.first에 값이 없는 경우 obj.first.second에 접근하면 에러가 발생하므로, nullundefined인 경우에 대해서도 처리를 해줘야 한다.

기존 구현 방식

let nestedProp = ((obj.first === null || obj.first === undefined) ? undefined : obj.first.second);
 

옵셔널 체인 적용 후

let nestedProp = obj.first?.second;