728x90
let a = '';
const res = a.filter(item => item.isUse);
console.log(res);
위와 같이 사용하면
'a' 변수는 타입이 문자열이기 때문에 filter 를 사용하려면 에러가 발생한다.
하지만
다음과 같이 사용하면
타입을 확인하지 않고 쓸 수 있다.
let a = '';
const res = a.filter?.(item => item.isUse);
옵셔널체이닝을 이런 식으로 사용하는 건데
굉장히 어색하다.
옵셔널체이닝은
중첩된 데이터를 접근할 때
null, undefined 여도
에러를 뻗지 않고 접근이 가능하게 하는 연산자다
그런데 'filter' 라는 배열 메소드는
a가 배열 타입이 확정도 안되었는데
filter까지 접근했을 때
왜 에러가 발생하지 않는지 궁금하다.
어떤 원리로
되는 건지 확인해봐야겠다.
주의할점
사용하려는 대상의
변수가 undefined이면
사용할 수 없다.
예를 들면 아래 코드와 같다.
let a;
const res = a.filter?.(item => item.isUse);
다음 포스팅에는
어떤 원리로 저것이 작동이 알아와 올리도록 하겠다
'Javascript Tips' 카테고리의 다른 글
Array.prototype.at() 메소드 브라우저 버전별 고려하기 (0) | 2024.10.08 |
---|---|
단일책임원칙을 적용한 필터 구현은 어떻게? (0) | 2024.10.04 |
이미지 퍼블할 때 임시로 넣는 좋은 사이트 (0) | 2024.09.08 |
react spa - boot 3 ) kakao 소셜로그인 연동 (0) | 2024.06.27 |
react.js) index.html에 로고 에러나오는 현상 (0) | 2024.06.23 |