유튜브 코딩앙마 채널의 '자바스크립트 기초 강좌' 를 공부하며 정리한 내용입니다.
세 종류의 논리 연산자가 있습니다.
||
or연산자 여러개 중 하나라도 true
면 true
모든 값이 false
여야 false
&&
and연산자 모든 값이 true
면 true
하나라도 false
면 false
!
not연산자 true
와 false
의 값을 바꿔줌or
은 첫번째 true
를 발견하면 즉시 평가를 멈춥니다.
and
는 첫번째 false
를 발견하면 즉시 평가를 멈춥니다.
실제 코드에서는 어떤 순서로 평가를 배치하는 지가 중요합니다.
예를들어 운전면허가 있고 시력이 좋은 여군을 골라야 할 때,
운전면허, 전체 군인의 80%
시력, 전체 군인의 60%
여군, 전체 군인의 7%
라면 첫 평가에서 93%를 걸러주는 여군 조건을 먼저 검사해야 합니다. 이렇게 하면 데이터를 평가하느라 걸리는 시간을 줄이고, 성능 최적화에 도움을 줍니다.
아래와 같이 사용할 수 있습니다.
a||b
- a나 b중 true가 있다면 true
a&&b
- a와 b 둘다 true면 true
!a
- a가 false면 true
//이름이 tom이거나 성인이면 통과하는 프로그램을 만든다고 하면,
const name = "Mike";
const age = 30;
if(name==='tom' || age>19){
console.log('통과');
}
//이름이 Mike이고, 성인이면 통과라면
const name = "Mike";
const age = 30;
if (name==='Mike" && age>19){
console.log('통과');
}
//나이를 입력받아 성인이 아니면 돌아가라고 한다면
const age = prompt('나이가 어떻게 되세요?');
const isAdult = age>19;
if(!isAdult){ // ! 써서, 성인이 아니면 ture 실행
console.log('돌아가세요');
}
비교연산자에도 우선순위가 있습니다.
아래 예제를 보면,
// 남자이고, 이름이 Mike 이거나 성인이면 통과
const gender='F';
const name='Jane';
const isAdult=true;
if(gender==='M' && name==='Mike' || isAdult){
console.log('통과');
} else {
console.log('돌아가');
}
// 위 코드는 or 로 계산되어 '통과' 된다.
// 비교연산자 우선순위에 의해 앞의 and연산자가 먼저 묶이고, 뒤에 or연산자로 판단한다.
// (gender==='M' && name==='Mike') || isAdult - 이렇게 묶인 상태
// or연산자로 인해 성인만으로 통과됨
// 원래 의도처럼 작동하게 하려면, 아래처럼 괄호로 묶어주어야 함
if(gender==='M' && (name='Mike' || isAdult))