TIL 03 | JS Logical Operator - 단축평가와 우선순위

Gom·2021년 1월 6일
0

JavaScript

목록 보기
3/22
post-thumbnail

논리합(||) 연산자와 논리곱(&&) 연산자의 연산 결과는 불리언 값이 아닐 수도 있다.
두 연산자는 언제나 피연산자 중 어느 한쪽 값을 반환한다.

표 출처: https://medium.com/js-drugs/javascript-short-circuit-evaluation-d9b0fcb8019a

단축 평가(Short-Circuit evaluation)

논리 연산 결과를 결정하게 되는 대상의 값을 그대로 반환한다.

  • 논리곱(AND) &&
    양 쪽 모두 true이면 true

    && 논리곱과 단축 평가

    &&은 첫번째 피연산자가 true로 평가되어도 두번째 피연산자까지 확인해야만 결과를 알 수 있다. 최종 결과를 결정한 피연산자 값이 반환되므로 첫번째 피연산자가 false여서 논리 평가가 중단되는 때를 제외하고는 두번째 피연산자 값이 반환된다.

  • 논리합(OR) ||
    둘 중 하나라도 true이면 true

    || 논리합과 단축평가'
    ||은 첫번째 피연산자만 true로 평가되어도 최종 결과가 확정되므로 이 경우 첫번째 피연산자가 반환된다. false인 경우는 두번째 피연산자까지 평가해야하기 때문에 두번째 피연산자 값이 반환된다.

  • 간단 요약

    AND는 Falsy값을 맞닥뜨리면 멈춘다.
    Falsy값 존재 여부에 따라 값이 결정되는 연산자이기 때문이다.
    AND는 Falsy값을 찾으면 그 값을 반환, 존재하지 않는다면 마지막 값이 반환 된다.

    OR은 Truthy값을 맞닥뜨리면 멈춘다.
    Truthy 존재 여부에 따라 값이 결정되는 연산자이기 때문이다.
    OR은 Truthy값을 찾으면 그 값을 반환, 존재하지 않는다면 마지막 값이 반환 된다.


단축 평가의 활용

▲ 객체가 null인지 확인하고 프로퍼티를 참조할 때


▲함수의 인수(argument)를 초기화할 때


연산자 우선순위 (Operator Precedence)

AND 연산자가 OR 연산자보다 우선순위가 높으므로 두 연산자가 공존하는 식에서는 AND연산자를 먼저 실행한다.

참고자료
MDN
poiemaweb

profile
안 되는 이유보다 가능한 방법을 찾을래요

0개의 댓글