-
옵셔널 체이닝 (optional chaining)Programming/Javascript 2021. 1. 7. 23:17반응형
02 - optional chaining operator
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Optional_chaining
API에서 어떤 object를 가져올 때 매우 유용하다.
const me = { name: 'simmy', profile: { email: '@gmail.com' } } console.log(me.profile.email); // @gmail.com const someone = { name: 'who', } console.log(someone.profile.email); // Uncaught TypeError: Cannot read property 'email' of undefined 에러 발생someone에는profile이라는property가 없기 때문에someone.profile.email을 출력하지 못하고 에러가 난다. 위 상황을 fix하기 위해선console.log(someone.profile && someone.profile.email); // undefined 출력위와 같이 방어 코드를 작성해줘야 한다. 하지만 때에 따라서는 아래처럼 이 구문이 엄청나게 길어질 수도 있다.
console.log(someone && someone.profile && someone.profile.email && someone.profile.email.domain);이런 불편함을 해결하는 게
?.연산자, optional chaining이다. 말 그대로, 조건을 연쇄적으로 작성하는 거다.?.연산자를 사용하면 위 구문은 아래처럼 바뀐다.console.log(someone?.profile?.email?.domain);누가 봐도 깔끔하다.
React나Vue프로젝트에서 API를 호출할 때 object가 아직 다 넘어오지 않은 상태의 에러 방지용으로 사용하면 좋을 거 같다.ㅇㅇ반응형'Programming > Javascript' 카테고리의 다른 글
자바스크립트 무작위 정수 뽑기, 배열에서 무작위 원소 뽑기 (0) 2021.03.01 npm, npx, yarn 구분하기 (0) 2021.01.07 ?? 연산자 (null 병합 연산자, Nullish coalescing operator) (0) 2021.01.07 String.prototype.padStart()와 String.prototype.padEnd() (0) 2021.01.07 hasOwnProperty등 builtin 메소드 안전하게 사용하기 (0) 2020.12.18