TIL 01.31

새양말·2023년 1월 31일
0

내일배움캠프TIL

목록 보기
59/74
post-thumbnail
  • "2" > "12" → true ( 문자열끼리 있으니 숫자형으로 변환하지 않고 문자열비교 - 앞자리부터 비교 )
  • 역시 정의를 잊어버리면 안 된다
    • OR 연산자: 인수 중 하나라도 true이면 true를 반환.
      첫 번째 truthy 값을 찾는다!
    • AND 연산자: 인수가 모두가 참일 때 true를 반환. 그 외의 경우는 false 반환.
      첫 번째 falsy 값을 찾는다!

헷갈렸던 문제들

  1. alert( alert(1) || 2 || alert(3) );
    얼럿 창엔 1, 2가 차례대로 출력됩니다.alert 메서드는 값을 반환하지 않습니다.
    즉, undefined를 반환하죠.

첫 번째 OR || 은 왼쪽 피연산자인 alert(1)를 평가합니다. 이때 첫 번째 얼럿 창에 1이 출력되죠.
alert메서드는 undefined를 반환하기 때문에, OR 연산자는 다음 피연산자를 평가하게 됩니다. truthy를 찾기 위해 말이죠.
두 번째 피연산자(오른쪽 피연산자)인 2는 truthy이기 때문에 실행이 멈추고 2가 반환됩니다. 반환된 값 2는 제일 바깥 alert의 피연산자가 되어 두 번째 얼럿 창에 출력됩니다.
평가가 alert(3)까지 진행되지 않기 때문에 3은 출력되지 않습니다.

  1. alert( null || 2 && 3 || 4 );
    AND 연산자 &&의 우선순위는 ||보다 높습니다. 따라서 &&가 먼저 실행됩니다.

2 && 3 = 3이므로, 문제에서 제시한 표현식은 아래와 같이 바꿔쓸 수 있습니다.

null || 3 || 4
따라서 첫 번째 truthy인 3이 출력됩니다.

profile
매번 기합넣는 양말

0개의 댓글