본문 바로가기

IT/JavaScript

Optional chaining

Optional chaining

Optional chaining 연산자(?.) 는 체인의 각 참조가 유효한지 명시적으로 검증하지 않는다.

연결된 객체 체인 내에 존재하는 속성 값을 읽을 수 있다.

const user = {}

console.log(user.addr.city) // TypeError: Cannot read property "addr" of undefined

위와 같은 상황에서 user 오브젝트 내에 addr 이라는 속성이 없는데 읽는 것을 시도하고 있으므로 에러가 발생한다.

이러한 오류를 방지하기 위해 Optional chaining 을 사용하기 이전에는 && 연산자를 사용했다.

const user = {}

console.log(user && user.addr && user.addr.city) // undefined, Error X

&& (And) 연산을 사용하여 Error를 방지할 수 있으나, 반복되는 코드가 길어진다는 단점이 있다.

?. 연산자는 참조하고자 하는 대상이 undefined나 null이면 undefined를 반환한다.

const user = null

console.log(user?.addr) // undefined
console.log(user?.addr.city) // undefined

'IT > JavaScript' 카테고리의 다른 글

Promise  (0) 2022.09.22
Static  (0) 2022.09.12
Shallow copy && Deep copy  (0) 2022.08.11
Functional programming  (0) 2022.08.09
Prototype  (0) 2022.08.02