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
에 접근하면 에러가 발생하므로, null
과 undefined
인 경우에 대해서도 처리를 해줘야 한다.기존 구현 방식
let nestedProp = ((obj.first === null || obj.first === undefined) ? undefined : obj.first.second);
옵셔널 체인 적용 후
let nestedProp = obj.first?.second;