728x90
옵셔널 체이닝
- 옵셔널 체이닝(?.)을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 접근할 수 있습니다.
- 옵셔널 체이닝은 ?. 앞 평가대상이 undefined나 null 이면 평가를 멈추고 undefined를 반환합니다.
- 옵셔널 체이닝의 앞 평가대상이 undefined나 null이 아닌 실제 값 존재한다면 뒤의 프로퍼티는 존재해야합니다. 그러므로 프로퍼티 안의 프로퍼티를 검증할 때 주의해야합니다.
let user = null;
alert( user?.address ); // undefined
alert( user?.address.street ); // undefined 이 경우 address가 없을 경우 에러가 발생하므로 조심해야함
- 옵셔널 체이닝은 왼쪽의 평가 대상에 값이 없을 경우 평가를 멈춥니다. 이를 단락 평가라고 합니다. 멈추면 오른쪽의 코드는 실행되지 않습니다.
- 함수의 존재여부가 확실하지 않을 경우 .?()를 사용하여 검증해야 에러 없이 확인할 수 있습니다.
- 객체의 프로퍼티의 존재는 .?[]를 통해 검증할 수 있습니다.
- delete와 함께 사용하면 .? 뒤의 값이 존재하면 삭제할 수 있도록 작성할 수도 있습니다.
- 옵셔널 체이닝은 읽기나 삭제에 사용이 가능하지만 쓰기에는 사용할 수 없습니다. 먼저 평가한 값이 없으면 undefined로 지정이 되고 여기에 대입을 하기 때문에 불가능합니다.
'학습(구) > JavaScript(구)' 카테고리의 다른 글
| 자바스크립트 - new 연산자와 생성자 함수 (0) | 2021.11.09 |
|---|---|
| 자바스크립트 - 객체의 메서드와 this (0) | 2021.11.07 |
| 자바스크립트 - 가비지 컬렉션 (0) | 2021.11.03 |
| 자바스크립트 - 객체 복사 (0) | 2021.11.03 |
| 자바스크립트 - 객체 (0) | 2021.11.02 |