OR
여러 조건 중 하나라도 true면 true를 반환한다.
즉, 모든 값이 false 일 때만 false를 반환함.
첫 번째 ture를 발견하는 즉시 평가를 멈춘다.
(a || b) → a나 b 중 true가 있으면 true
// OR
// 이름이 Gandalf 이거나, 나이가 19 보다 크면 통과
const name = 'Gandalf';
const age = 20;
if(name === 'Gandalf' || age > 19){
console.log('통과');
}
AND
모든 값이 true면 true를 반환한다.
즉, 하나라도 false면 false를 반환함.
AND가 OR 보다 우선순위가 높음.
(a && b) → a와 b 중 둘 다 true면 true
// AND
// 이름이 Gandalf 이고, 나이가 19 보다 크면 통과
const name = 'Gandalf';
const age = 20;
if(name === 'Gandalf' && age > 19){
console.log('통과');
} else {
console.log('애들은가라');
}
NOT
true면 false로 반환함
false면 true로 반환함
(!a) → a가 false면 true
// NOT
// 나이를 입력받아 성인이 아니면 돌아가게 하기
const age = prompt('하우올드알유?');
const isAdult = age > 19;
if(!isAdult){
console.log('애들은 가라');
} else {
console.log('통과');
}
연산자 우선순위
연산자에도 우선순위가 있다.
OR, AND, NOT 중에서는
NOT > AND > OR 순이다.
아래의 코드는 AND가 OR보다 연산자 순위가 높아서 벌어지는 일이다.
// 남자이고(AND), 이름이 Scott이거나(OR), 성인이면 통과
const gender = 'F';
const name = 'Patrick';
const isAdult = true;
if(gender === 'M' && name === 'Scott' || isAdult){
console.log('환영한다');
} else {
console.log('누구냐 넌');
}
//결과 : 환영한다
위의 코드를 사용자가 원하는 조건대로 만들려면 OR 부분의 조건을 괄호를 사용해 묶어준다.
(괄호의 우선순위가 연산자 우선순위 중 제일 높다.)
// 남자이고(AND), 이름이 Scott이거나(OR), 성인이면 통과
const gender = 'F';
const name = 'Patrick';
const isAdult = true;
if(gender === 'M' && (name === 'Scott' || isAdult)){
console.log('환영한다');
} else {
console.log('누구냐 넌');
}
//결과 : 누구냐 넌
조건식을 작성하는 순서 또한 중요하다.
예를 들면 '키가 175cm 이상이고, 커피를 좋아하는 여성'이라면
'여성인데 키가 175cm 이상이고, 커피를 좋아하는 사람' 순으로 작성하는 것이 좋다.
조건식 작성 순서를 잘 배치해서
간단한 평가로 true와 false를 판단할 수 있다면 복잡한 작업 전에 해주는 것이 좋다.
이것은 '성능 최적화'에 도움을 준다.
코딩앙마님의 JS 기초 강좌를 참고하여 정리한 글 입니다.
반응형
'✏️ 공부 > JavaScript' 카테고리의 다른 글
[JS] 반복문 제어(break 문, continue 문) (0) | 2022.02.13 |
---|---|
[JS] 반복문(while 문, for 문) (2) | 2022.02.12 |
[JS] 조건문(if, if else, else) (5) | 2022.01.31 |
[JS] 비교 연산자 (0) | 2022.01.28 |
[JS] 연산자(operator) (0) | 2022.01.27 |