TIL #20 논리 연산자( AND, OR , NOT)

JohnKim·2021년 3월 22일
0

javascript

목록 보기
5/26
post-thumbnail

논리 연산자

자바 스크립트에는 3가지 논리연산자가 존재한다

||  (OR)   

여러개 중 하나라도 truetrue를 반환

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

a || b


&&  (AND)

모든값이 truetrue를 반환

즉, 하나라도 falsefalse 를 반환

a && b


!  (NOT)

truefalse

falsetrue 를 반환

!a (a가 false 이면 true)


예 ) 

  1. 스티브 잡스는 한국인 이거나 (OR ||) , 남자이다.   true

2.스티브 잡스는 한국인 이고(AND &&) , 남자이다.  false


논리연산자를 평과하는 과정

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

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


OR

이름이 TOM 이거나, 성인이면 통과

const name = "Mike";

const age = 30;



if(name === TOM   ||   age > 19){

  console.log('통과');

}    

   결과값: "통과"


AND

이름이  TOM 이고 ,  성인이면 통과

const name = "MIKE";

const age = 30;



if(name === TOM   &&   age > 19){

  console.log('통과');

}  else{

console.log('돌아가')

}                                   

결과값 : "돌아가"


NOT

나이를 입력받아 성인 아니면 돌아가라고 하기

const age = prompt('나이가..?');

const isAdult = age > 19;



if(!isAdult){

console.log('돌아가')

}

우선순위

남자이고, 이름이 Mike 이거나 성인이면 통과

const gender ='F';

const  name = 'Jane';

const isAdult = true;

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

 console.log('통과')

} else

console.log('돌아가')

}

결과값 : " 통과"

&& 가  ||  보다 우선순위가 높아서 먼저 평가된다.

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

즉 위의 코드와 같은 결과 값이다.
성별과 이름이 틀렷지만 이후 성인여부에서 true 가 결정되었기 떄문에 통과라는 결과 값이 나왔다.

if ( gender === 'M' && name === 'Mike' ||  isAdult)if ( gender === 'M' &&( name === 'Mike' ||  isAdult))로 변경하니 값이 달라졌다.

0개의 댓글