/ JAVASCRIPT

Optional Chaining (?.)

JavaScript 관련 글입니다.




이번 글에서는 ?. (Optional Chaining)에 대해서 알아보겠습니다.

Optional Chaining(?.)

const person = {
    name : 'kim',
    age : 26,
    phoneNumber : '010-1234-5678'
}

console.log(person.name);

person이라는 object가 있습니다. 여기서 ‘person.name’을 찾고싶습니다.
콘솔에는 당연히 ‘kim’이 출력될 것입니다.

const person = {
    name : 'kim',
    age : 26,
    phoneNumber : '010-1234-5678'
}

console.log(person?.name);

Optional Chaining은 위처럼 . 옆에 ?를 붙이는 것인데, 위의 ‘person?.name’은 무슨 의미일까요?
person이 null이거나 undefined이면 undefined로 하라는 의미입니다.

어떤 경우에 사용을 하면 좋을까요?

var user = {
    name : {last : 'kim', first : 'subin'},
    age : 26,
    phoneNumber : '010-1234-5678'
}

console.log(user.name1?.first);

위와 같이 object가 중첩되어있는 경우에 사용하면 좋습니다. 만약 자료가 깊이 있고 자료를 찾을 때 실수를 해서 잘못찾는 경우에 에러가 날 수 있습니다. null이거나 undefined인 경우에 . 을 이용해서 자료를 찾으면 에러를 발생시키기 때문입니다. 실제 서비스에서 이런 에러가 발생할 경우에는 위험할 수 있고 에러발생시 다른 코드가 정상적으로 동작하지 않을 수 있습니다.



그리고 보통은 if문을 이용해서 undefined이거나 null일 경우에 처리를 해주는 경우가 있는데 ?. 을 사용하면 에러를 발생시키지 않아서 유용합니다. 물론 근본적으로 에러를 해결해주는 것은 아니며 에러가 발생하지 않도록 숨겨주는 역할을 하는 것이 ?. 입니다.



End.