optional chaining
const person = null;
const name = person.name;
const person = null;
const name = person && person.name;
const name1 = person?.name;
const name = person === null || person === undefined ? undefined : person.name;
함수를 호출시에 optional chaining
const person = {
getName: () => 'abc',
};
const name = person.getName?.();
console.log(name);
함수 호출시 optionalchaining의 유용성
function loadData(onComplete) {
console.log('loading...');
onComplete?.();
}
loadData();
배열아이템의 접근시에 optionalchaining의 유용성
const person = { friends: null, mother: null };
const firstFriend = person.friends?.[0];
const prop = 'name';
const name = person.mother?.[prop];
optional chaining은 검사단계가 많을수록 유용하다
const name =
person &&
person.friends &&
person.friends[0] &&
person.friends[0].mother &&
person.friends[0].mother.name;
const name2 = person?.friedns?.[0]?.mother?.name;
optional chaining은 nulish coalescing과 연동하기에 좋다.
const person = {};
const name = person?.friends?.[0]?.mother?.name ?? 'default name';