2025. 3. 6. 12:15ㆍProgramming/JS
논리 연산자
|| OR
&& AND
! NOT
|| (OR) 연산자
여러 개 중 하나라도 true면 true
즉, 모든 값이 false 일 때만 false를 반환한다.
Code
// OR
// 이름이 Tom 이거나, 성인이면 통과
const name = "Mike";
const age = 30;
if(name === 'Tom' || age > 19) {
console.log('통과');
}
result
"통과"
→ 이름은 'Tom'이 아니지만, OR 연산자이기 때문에
성인이 true로 if문의 조건식을 만족하게 되어 '통과'라는 문장이 출력이 된다.
&& (AND) 연산자
모든 값이 true면 true
즉, 하나라도 false면 false를 반환한다.
Code
// AND
// 이름이 Mike 이고, 성인이면 통과
const name = "Mike";
const age = 30;
if(name === 'Mike' && age > 19) {
console.log('통과');
} else {
console.log('입장이 불가합니다.');
}
result
"통과"
만약, 나이가 성인이 아니라면?
Code
// AND
// 이름이 Tom 이거나, 성인이면 통과
const name = "Mike";
const age = 18;
if(name === 'Mike' && age > 19) {
console.log('통과');
} else {
console.log('입장이 불가합니다.');
}
result
"입장이 불가합니다."
→ AND 연산자는 모든 조건식을 만족해야 (false를 보자마자 그냥 false임) 함.
! (NOT) 연산자
true면 false
false면 true
Code
// NOT
// 나이를 입력받아 성인 아니면 돌아가라고..
const age = prompt('나이를 입력해주세요.');
const isAdult = age > 19;
if(!isAdult) {
console.log('돌아가..');
}
console.log('들어와..');
만약 prompt에 20을 입력한다면,
결과는 아래와 같다.
result
"들어와.."
그렇다면, 경계값인 '19'를 입력하게 되면 어떻게 될까?
"돌아가.."
비교 연산자가 >= '크거나 같다.'가 아닌 > '크거나' 일 때이기 때문에
경계값보다 큰 상태일 때,
즉, 피연산자보다 초과됐을 때만 조건식을 만족하게 된다.
>= : 피연산자보다 '이상' (피연산자를 포함한 값부터)
> : 피연산자보다 '초과' (피연산자를 제외한 값부터)
논리 연산자 우선순위
AND > OR
Code
// 논리 연산자 우선순위
const gender = 'F';
const name = 'Jane';
const isAdult = true;
// 남자이면서, 이름이 Mike 이거나, 성인이면 통과
// if((gender === 'M' && name === 'Mike') || isAdult)아래의 코드는 이와 같다.
if(gender === 'M' && name === 'Mike' || isAdult) {
console.log('통과');
} else {
console.log('돌아가주십시오.');
}
논리 연산자의 우선순위가 AND > OR 순이기 때문에
AND가 먼저 평가된 후 OR가 후에 평가되었기 때문에 아래와 같은 결과가 출력된다.
result
"통과"
의도한 대로 결과를 출력하고 싶다면,
아래와 같이 코딩하면 된다.
Code
// 우선순위
const gender = 'F';
const name = 'Jane';
const isAdult = true;
// 남자이면서, 이름이 Mike 이거나, 성인이면 통과
if(gender === 'M' && (name === 'Mike' || isAdult)) {
console.log('통과');
} else {
console.log('돌아가주십시오.');
}
result
"돌아가주십시오."
평가
OR는 첫 번째 true를 발견하는 즉시 평가를 멈춤
스티브 잡스는 남자 이거나 (OR), 한국인 이거나, 군인 이거나..
→ true ( 스티브 잡스는 남자 )
평가
AND는 첫 번째 false를 발견하는 즉시 평가를 멈춤
스티브 잡스는 남자 이고(AND), 한국인 이며, 군인인 동시에..
→ false ( 한국인 이며, 군인인 동시에.. )
평가
운전면허(전체 군인의 80%)가 있고 시력(전체 군인의 60%)이 좋은 여군(전체 군인의 7%)
→ 여군인데 시력이 좋고 운전면허가 있는 사람
순으로 코딩하는 게 좋음 (성능 최적화에 도움 - 첫 번째 평가에서 93%를 거를 수 있기 때문)
정리
|| OR a || b // a 와 b 둘 중 하나가 true 이면 true
&& AND a && b // a 와 b 둘 다 true 이면 true
! NOT !a // a가 false 이면 true
정리되어있는 내용은 코딩앙마 자바스크립트기초강좌를 듣고
정리한 내용입니다.
'Programming > JS' 카테고리의 다른 글
JS 자바스크립트 기초 - 10. switch문 (0) | 2025.03.06 |
---|---|
JS 자바스크립트 기초 - 09. 반복문 (for, while, do while) (1) | 2025.03.06 |
JS 자바스크립트 기초 - 07. 조건문 (if, else, else if) (0) | 2025.03.06 |
JS 자바스크립트 기초 - 06. 비교 연산자 (0) | 2025.03.06 |
JS 자바스크립트 기초 - 05. 연산자 (0) | 2025.03.06 |