let user = {};
alert(user.address.street); // TypeError: Cannot read property 'street' of undefined
값이 정의되어 있지않은 값을 참조 할 때 TypeError
가 발생하게 되는데, 이럴 경우 옵셔널체이닝 ?.
을 통해서 평가 대상이 undefined
나 null
이면 평가를 멈추고 undefined
를 반환한다.
let user = {}; alert(user?.address?.street); // undefined
let user = null; alert( user?.address ); // undefined alert( user?.address.street ); // undefined
이렇게 user
객체가 존재하지 않더라도 에러가 발생하지 않는다.
alert( user?.address ); // ReferenceError: user is not defined
이렇게 user
가 정의되어 있지 않을 때는 에러가 발생한다.