모던자바스크립트를 읽고 요약한 내용입니다 틀린 부분이 있다면 말씀해주세요
?.을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있다
?.
은 ?.
앞의 평가 대상이 undefined나 null이면 평가를 멈추고 undefined를 반환한다
let user = {}; // 주소 정보가 없는 사용자
alert( user?.address?.street ); // undefined, 에러가 발생하지 않습니다.
user가 주소를 안 적었다고 에러를 내는 것보다 undefined로 두는 것이 훨씬 효율적이다
그래서 ?.는 존재하지 않아도 괜찮은 대상에만 사용해야 한다
단락 평가
라고 부른다let user = null;
let x = 0;
user?.sayHi(x++); // 아무 일도 일어나지 않습니다.
alert(x); // 0
let user1 = {
firstName: "Violet"
};
let user2 = null; // user2는 권한이 없는 사용자라고 가정해봅시다.
let key = "firstName";
alert( user1?.[key] ); // Violet
alert( user2?.[key] ); // undefined
alert( user1?.[key]?.something?.not?.existing); // undefined
delete user?.name; // user가 존재하면 user.name을 삭제합니다
?.
은 ?.
앞의 평가 대상이 undefined나 null이면 평가를 멈추고 undefined를 반환한다