JavaScript 논리 연산자

Yoon·2024년 2월 13일

논리 연산자

표현

  • or ( || ) : a 와 b 중 true 있으면 true (이거나)

    a || b

  • and ( && ) : a 와 b 둘 다 true 면 true (이고)

    a && b

  • not ( ! ) : a가 false면 true (아니면)

    !a

평가

  • or은 첫번째 true를 발견하는 즉시 평가 멈춤
  • and는 첫번째 false를 발견하는 즉시 평가 멈춤
  • 평가는 될 확률이 적은 순으로 하는게 좋다
    ex) // 운전면허 = 전체 군인 80%, 시력 = 전체 군인 60%, 여군 = 전체 군인 7%

    운전면허가 있고 시력이 좋은 여군 x
    여군인데 시력이 좋고 운전면허가 있는 사람 o

=> 성능 최적화에 도움을 준다

OR

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

const name = "Mike";
const age = 30;

if(name === 'TOM' || age > 19){
  console.log('통과');
}

=> 이름이 TOM 이거나 나이가 성인 둘 중 하나만 해당되면 통과
=> 통과

AND

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

const name = "Mike";
const age = 10;

if(name === 'Mike' && 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){ // 결과 = 통과 / && -> || 순
// if((gender === 'M' && name === 'Mike') || isAdult){ // 결과 = 통과 / && -> || 순
if(gender === 'M' && (name === 'Mike' || isAdult)){ // 결과 = 돌아가.
console.log('통과');
} else{
console.log('돌아가.')
}
  • 사칙연산처럼 항상 or, and 가 우선순위

0개의 댓글