옵셔널 체이닝이란?
?. 와 같은 연산자이며,?.
앞의 평가 대상이undefined
나null
이면 평가를 멈추고undefined
를 반환한다.
let users = {};
console.log(users && users.user && users.user.name)
우리는 user 안에 뭐가 들었는지 모른다는 가정하에 users안에 user안에 name에 접근하기 위해서는 위와 같이 코드를 작성할것이다.
허나 이를 옵셔널 체이닝을 사용하면 다음과 같이 간소화 할 수 있다.
let users = {};
console.log(users?.user?.name);
? 앞에 값이 null인지 판단하고 null일 경우 undefined
를 반환한다.
이와 같이 가독성을 향상 시킬 수 있다.
?.
앞의 변수는 꼭 선언되어 있어야 한다 : 옵셔널 체이닝은 선언이 완료된 변수를 대상으로만 동작한다.?.
연산자는 존재하지 않아도 괜찮은 대상에만 사용해야 한다. 남용할 경우 추후에 디버깅에 많은 어려움을 느낄 수 있다.