논리 연산자

lilyoh·2020년 10월 12일
0

|| OR 연산자

  • 첫 번째 truthy 값을 찾아 반환한다.
  • truthy한 값이 없을 경우 마지막 값을 반환한다.

&& AND 연산자

  • 첫 번째 falsy 값을 찾아 반환한다.
  • falsy한 값이 없을 경우 마지막 값을 반환한다.

! NOT 연산자

  • !! 이렇게 쓰면 boolean 값으로 바꿀 수 있다.
  • !! 는 내장함수 Boolean을 사용해서 같은 결과를 도출할 수 있다.
    console.log(Boolean(null)); // false

우선순위?

NOT > && > ||

예제 1

alert( alert(1) || 2 || alert(3) );

alert 창에는 1 과 2 가 차례로 출력된다.
alert 메서드는 값을 반환하지 않기 때문에 처음으로 alert 창에 1이 뜨고 나면 undefined 를 반환하여 OR 연산자는 다음 피연산자를 평가하게 된다. 2 는 true 이므로 alert 2 가 되고 alert(3) 은 평가되지 않는다.

예제 2

alert( alert(1) && alert(2) );

alert 창에는 1, undefined 가 차례로 출력된다.
첫 번째 피연산자는 undefined 를 반환하기 때문에 falsy 한 값이다. 따라서 alert(1) 이 먼저 실행되고 undefined 값이 alert 로 실행된다. alert(2) 는 평가되지 않는다.

예제 3

alert( null || 2 && 3 || 4 );

&& 가 || 보다 우선하므로 2 && 3 이 먼저 평가된다. 2 && 3 의 값은 3이다. alert(null || 3 || 4) 의 결과로는 3이 출력된다.

참고자료

0개의 댓글