Logical operators

SSO·2020년 1월 8일
0

Javascript & TypeScript

목록 보기
2/4

개념

Logical operators are typically used with Boolean (logical) values. When they are, they return a Boolean value. However, the && and || operators actually return the value of one of the specified operands, so if these operators are used with non-Boolean values, they will return a non-Boolean value.

논리 연산자는 주로 boolean값과 쓰이면서 boolean값을 반환하는데, 사실은 피연산자 중 하나의 값을 반환하기 때문에, boolean이 아닌 값과 함께 쓰이는 경우에는 boolean이 아닌 값도 반환할 수 있음.

작동방식

OperatorSyntaxDescription
Logical  AND (& )expr1 && expr2If expr1 can be converted to true, returns expr2; else, returns expr1.
Logical  OR (||)expr1 || expr2If expr1 can be converted to true, returns expr1; else, returns expr2.
Logical  NOT (!)!exprReturns false if its single operand can be converted to true; otherwise, returns true.

false로 취급되는 것들
=> null; NaN; 0; -0; empty string ("" or '' or ` `); undefined; 이외에는 모두 초기값이 true로 설정됨.

logical expressions are evaluated left to right
(some falsy expression) && expr is short-circuit evaluated to the falsy expression;
(some truthy expression) || expr is short-circuit evaluated to the truthy expression.

Operator precedence // 연산자 우선순위
&& operator is executed before the || operator

true || false && false      // returns true, because && is executed first
(true || false) && false    // returns false, because operator precedence cannot apply

예제

&&(논리 AND) 연산자의 예제

a1 = true  && true       // t && t returns true
a2 = true  && false      // t && f returns false
a3 = false && true       // f && t returns false
a4 = false && (3 == 4)   // f && f returns false
a5 = 'Cat' && 'Dog'      // t && t returns "Dog"
a6 = false && 'Cat'      // f && t returns false
a7 = 'Cat' && false      // t && f returns false
a8 = ''    && false      // f && f returns ""
a9 = false && ''         // f && f returns false

||(논리 OR) 연산자의 예제

o1 = true  || true       // t || t returns true
o2 = false || true       // f || t returns true
o3 = true  || false      // t || f returns true
o4 = false || (3 == 4)   // f || f returns false ***
o5 = 'Cat' || 'Dog'      // t || t returns "Cat"
o6 = false || 'Cat'      // f || t returns "Cat"
o7 = 'Cat' || false      // t || f returns "Cat"
o8 = ''    || false      // f || f returns false
o9 = false || ''         // f || f returns ""
o10 = false || varObject // f || object returns varObject

출처

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

profile
happy

0개의 댓글