본문 바로가기

JavaScript

[JavaScript] && 과 ? 차이

자바스크립트에서 객체를 사용할 때 

data && data.list.map 과 data?.list.map 을 사용하는 경우가 있다. 

 

둘다 작동되는 것은 동일한데 어떤 경우에 뭘 사용하는게 좋을까? 

 

data && data.list.map 

&& 는 data가 truthy한 값 ( null, undefined, false, 0, NaN, "" [ 빈문자열 ]이 아닌 값 )일 때 data.list.map을 실행한다. 

여기서 data는 truthy한 값을 가지고 있지만 data.list가 없으면 data.list.map은 오류를 발생시킨다. 

 

data?.list.map 

? 는 data가 null 또는 undefined가 아닌 경우에만 data.list.map을 실행시킨다. 

 만약 data는 존재하지만 data.list가 없다면 오류를 발생시키지 않고 undefined를 반환한다. 

 

두 표현식을 모두 사용할 수 있지만 data?.list.map을 사용하는 쪽이 조금 더 안전하게 사용할 수 있다. 

data.list가 혹시라도 없어도 오류를 발생시키지 않기 때문이다. 

반응형

'JavaScript' 카테고리의 다른 글

History 그거 완전 퇴물 아니냐?  (1) 2024.06.12
DOM Script  (2) 2024.05.15
[JavaScript] 자꾸 까먹는 e.preventDefault & e.stopPropagation  (2) 2023.11.11
[JavaScript] ?, !  (2) 2023.10.07
[JavaScript] Array at 함수  (0) 2023.09.12