제일 처음에 배울 때는 if (a === 1 || a === 2) 같은 곳에서 &&를 and로 , ||는 or로 해서 둘 다 해당될 때 or 하나만 해당될 때
이런식으로 배웠는데 사실 ||저 의미는
- a = 1이 true이면 저 조건문은 true, 뒤에 코드 실행 안하고 그냥 true로 끝
- a = 1이 false라면 그 뒤 코드로 가서 a = 2가 true이면 true , false면 false
&&의 경우에는
- a = 1이 true일 때 -> 뒤로 가서 a = 2가 true라면 true - false면 false
- a = 1이 false일 때 -> 그냥 false
|| 에서 더 좁은 의미로 ??를 사용할 수 있음
?? 로 써우면 null,undefined 일때만 뒤의 코드 실행(falsy값인 Nan,[],'',0 등등은 빠지게 되는거)
예시를 들면 만약에 내가 어떤 값을 서버에서 받아와서 바로 페이지에 보여줄건데 혹시 그 값이 0이나 undefined라서
이걸 표시해주고 싶지 않을 때 if문 대신에
page.innerHTML = serverData || '데이터가 없슴'
이렇게 설정해주면 if문과 똑같은 의미 - 혹시나 0은 보여주고 싶다 하면 ??로 교체해주면 됨
요약
&& - 첫번째코드 참일때만 두번째 실행해라
|| - 첫번째코드 거짓일때만 두번째 실행해라 - ??도 비슷
'JS' 카테고리의 다른 글
undefined / null (0) | 2023.02.13 |
---|---|
데이터 타입 정리 (0) | 2023.02.13 |
호이스팅 (0) | 2023.01.30 |
호출스택과 이벤트 루프 정리 (1) | 2023.01.21 |
Iterable/Iterator 정리 (0) | 2023.01.11 |