티스토리 뷰

|| (OR)

여러개 중 하나라도 true면 true

즉, 모든 값이 false일 때만 false를 반환

 

&& (AND)

모든 값이 true면 true

즉, 하나라도 false면 false를 반환

 

! (NOT)

true면 false

false면 true

true와 false 값을 바꿔줌

 

 

평가

OR는 첫번째 true를 발견하면 즉시 평가를 멈춤

AND는 첫번째 false를 발견하면 즉시 평가를 멈춤

 

코드를 짤 때도 어떤 순서로 평가를 배치하는지가 중요

간단한 평가로 T/F 판단이 가능하다면 복잡한 작업 전에 하는 것이 좋음

(예 : 운전면허가 있는(전체80%) 시력이 좋은(전체60%) 여성군인(전체7%)을 판단한다고 하면

여성군인(전체7%)인 시력이 좋은(전체60%) 운전면허가 있는 사람(전체80%)순으로 배치해 시간 절약)

성능 최적화에 도움을 줌

 

 

 

사용

a || b

a && b

!a

 

나이를 입력받아 성인이 아니면 되돌려 보내는 경우

const age = prompt('나이를 입력해주세요.', "18");
const isAdult = age > 19;

 

if (!isAdult){

    console.log('성인이 아닙니다.');

}

>age의 값을 10으로 입력할 경우 false이고

!는 false를 true로 반환하여 if문이 실행된다.

 

 

 

비교 연산자 우선순위

&&  >  ||

 

남자이고, 이름이 Mike이거나 성인일 때만 작동시키고 싶은데

const gender = 'F';

const name = 'Jane';

const isAdult = true;

 

if (gender === 'M' && name === 'Mike' || isAdult) > 이렇게 하면 여성이어도 작동함

=

 

if ((gender === 'M' && name === 'Mike') || isAdult) > 이 코드와 같음

코드의 우선 순위대로 평가하므로 최종적으로 True가 나와서 작동한다

 

그래서 남자이고, 이름이 Mike이거나 성인인 조건은

if (gender === 'M' && (name === 'Mike' || isAdult))

이렇게 해야한다

 

 

 

+연산자 우선순위

1. 괄호 ()

2. 증감/논리 연산자 not ++ -- !

3. 산술 연산자 곱셈 * / %

4. 산술 연산자 덧셈 + -

5. 비교 연산자 대소 < <= > >=

6. 비교 연산자 같음 == === != !==

7. 논리 연산자 and &&

8. 논리 연산자 or ||

9. 대입 연산자 = += -= *= /= %=

 

그래서 위 예제에서

if (gender === 'M' && name === 'Mike' || isAdult)

if ((false) || isAdult)

if ((false) || (true))

(true)

> 작동하게 된다

 

 

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함