[모던 JS 튜토리얼] 2.11. 논리 연산자

승연·2023년 11월 17일
0
post-thumbnail

|| or

&& and

! not

2.11.1. || or

result = a || b;

<script>
      
      if (1 || 0) //false || false 가 아니면 전부 결과는 true가 나옴
      { alert('truthy')} ;
      
   </script>

ex)

<script>
      let hour = 12;
      let isWeeknd = true;
      
      if(hour < 10 || hour > 18 || isWeeknd){
         alert('영업 시간이 아님. 가세요!!');
      }

   </script>

타입 제약 X

2.11.2. 첫 번째 truthy를 찾는 or 연산자 ||

JS에서만 제공하는 논리연산자 OR의 추가 기능

result = value1 || value2 || value3; 일 때

or 연산자 || 의 연산 수행 순서

  1. 가장 왼쪽 피연산자부터 시작해 오른쪽으로 가며 피연산자 평가
  2. 각 피연산자를 불린형으로 변환, 값이 true이면 연산을 멈추고 해당 피연산자의 변환 전 원래 값 반환
  3. 피연산자를 모두 평가한 경우 (모든 피연산자가 false 로 평가되는 경우)에는 마지막 피연산자를 반환
<script>
      alert( 1||0);  //1 -> truthy
      alert( null || 1);   // X 1 -> truthy
      alert( null || 0 || 1 );   // X X 1 -> truthy
      alert(undefined || null || 0);   // X X X -> 모두 falsy이므로 0 반환

   </script>

용도

  • 변수 or 표현식으로 구성된 목록에서 첫 번째 truthy 얻기
    <script>
          let firstName = "";
          let lastName = "";
          let nickName = "바이올렛";
    
          alert(firstName || lastName || nickName || '익명');   //바이올렛
    
       </script>
  • 단락 평가 연산자 왼쪽 조건이 falsy일 때만 명령어를 실행하고자 할 때 자주 사용
    <script>
          true || alert('not printed'); //print X
          false || alert('printed'); //print O
    
       </script>
    첫 번째 줄에서 ||true를 만나자마자 평가를 멈추므로 alert 실행 X

2.11.3. && and

<script>
      let hour = 12;
      let minute = 30;

      if (hour == 12 && minute == 30) {
      alert( '현재 시각은 12시 30분입니다.' );
      }

   </script>

타입 제약 X

2.11.4. ! not

  • !1개 : not.. result = !value;
  • !2개 : 값을 불린형으로 변환
profile
앙녕항셍용

0개의 댓글