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 |