11. 논리 연산자

Chipmunk_jeong·2021년 2월 17일
0

TIL

목록 보기
11/62
post-thumbnail

OR , AND, NOT

자바스크립트에는 세 종류의 논리 연사자가 있다.

OR - ||

or연산자는 ||기호를 사용한다.
피연산자중 하나라도 true라면 true를 반환한다.
전체가 false일때는 false를 반환한다.

true || true // true
true || false // true
false || true // true
false || false // false

만약 피연산자가 boolean타입의 데이터가 아니라면
자동으로 형변환이 일어난다.
즉, 앞에서 봤던 truthy와 falsey한값으로 변환된다.

if(false || '1') // -> (false || true)
if('' || null) // -> (false || false)

- OR의 추가 기능

두가지 예를 살펴본다면

let result1 = 10 || 20 || 30;
let result2 = null || undefined || '';

각 result에는 어떠한 값이 담겨있을까?

result1에는 10 result2에는 ''이 할당되어있을것이다.

OR은 피연산자를 하나하나 확인하며 불린값으로 형변환하여 확인한다. 그 값이 true라면 그 이후의 연산은 하지않으며 true의 원래형태의 값을 리턴한다.

result1에서 10을 확인했을때 불린타입으로는 true이다.
그래서 20과 30은 확인은 하지않고 10을 리턴한다.
왜냐하면 OR은 하나라도 true면 뒤에 값이 무엇이든 true이기 때문이다.

반대로 모든것이 다 false라면 false이다.
그래서 result2는 마지막까지 다 확인했을때 다 false이다.
그리고 마지막에 확인했던 값을 리턴해준다.

AND - &&

AND 연산자는 &&를 사용한다.
AND는 모든 피연산자가 true일때 true이며,
하나라고 false이면 그 결과는 false가 된다.

true && true // true
true && false // false
false && true // false
false && false // false

- AND의 추가기능

AND는 or과는 다르게 피연산자를 확인하다가
그값이 false이면 여산을 멈추고 현재값의 원래 형태를 리턴한다.
그리고 모든값이 true일경우 마지막 확인값을 반환한다.

let result1 = 10 && 20 && 30;  // result1 = 30;
let result2 = 10 && NaN && null;  // result2 = NaN

# AND연산자는 OR연산자보다 우선순위가 높다.

NOT - !

NOT 연산자는 !를 사용한다.
NOT 연산자는 해당값을 뒤집어준다.
즉 true -> false, false -> true로 바꿔준다.

!true // false;
!10 // false;
!null // true;

!! NOT연산자를 두개 사용하면 어떠한 값을 Boolean타입으로 바꿔줄 수 있다.
!!10 // true
!!null // false
profile
Web Developer

0개의 댓글