본문 바로가기

Javascript Tips

js) 배열타입이 확실하지 않을 때 옵셔널체이닝으로 사용하기

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);

 

 

다음 포스팅에는 

어떤 원리로 저것이 작동이 알아와 올리도록 하겠다