본문 바로가기

Web/Javscript

[Javascript] optional chaining .?

?.는 3가지 형태가 있다.

  1. obj?.prop는 obj가 존재한다면, obj.prop 존재하지 않으면 undefined
  2. obj?.[prop]는 obj가 존재한다면, obj.prop 존재하지 않으면 undefined
  3. obj.method?.()는 obj.method가 존재한다면, obj.method() 존재하지 않으면 undefined

?.는 직관적이고 사용하기 쉽다.
?.는 깊숙한 곳에 있는 프로퍼티에 안전하게 접근할 수 있도록 도와준다.
?.는 꼭 없을 수도 있는 변수에만 사용해야 한다. 프로그래밍적으로 발생하는 에러를 가려버리기 때문에 잘못 사용했을 때는 되려 디버깅하기 어려워질 수 있다.