논리 연산자란 무엇인가?
자바스크립트의 논리 연산자는 조건을 판별하거나 결합하는 데 사용된다.
논리 연산자에는 세 가지가 있다.
- OR (||): 조건 중 하나라도 참이면 결과는 참
- AND (&&): 조건이 모두 참일 때 결과가 참
- NOT (!): 값의 논리 상태를 반대로 바꾼다.
1. OR (||) 연산자
기본 개념
OR 연산자는 **두 개의 수직선 ||**로 표현하며 **주어진 조건 중 하나라도 참이면 참**이 된다.
let result = condition1 || condition2;
기본 예제
피연산자1 | 피연산자2 | 결과 |
true | true | true |
false | true | true |
true | false | true |
false | false | false |
console.log(true || true); // true
console.log(false || true); // true
console.log(true || false); // true
console.log(false || false); // false
불린형이 아닌 값의 평가
OR 연산자는 피연산자가 불린형이 아니더라도 평가를 위해 불린형으로 변환한다.
- 1은 true로 평가됨
- 0은 false로 평가됨
if (1 || 0) { // true || false → true
console.log('조건이 참입니다.'); // 출력됨
}
OR의 활용 예시
여러 조건 중 하나라도 참일 경우 실행하기
let currentHour = 9;
if (currentHour < 10 || currentHour > 18) {
console.log("영업시간이 아닙니다."); // 출력: 영업시간이 아닙니다.
}
첫 번째 truthy 값을 반환하는 OR
OR 연산자는 여러 피연산자 중 첫 번째 truthy 값을 반환한다.
모든 값이 falsy라면 마지막 값을 반환한다.
console.log(1 || 0); // 1 (1은 truthy)
console.log(null || 1); // 1
console.log(null || 0 || 1); // 1
console.log(undefined || null || 0); // 0 (모두 falsy)
단락 평가 (Short-circuit evaluation)
OR 연산자는 왼쪽부터 오른쪽으로 순서대로 평가하면서 truthy 값을 만나면 평가를 중단한다.
true || console.log("실행되지 않음"); // 왼쪽이 true → 오른쪽 실행 안 함
false || console.log("이제 실행됨"); // 왼쪽이 false → 오른쪽 실행
2. AND (&&) 연산자
기본 개념
AND 연산자는 **두 개의 앰퍼샌드 &&**로 표현하며 **모든 조건이 참일 때만 참**이 된다.
let result = condition1 && condition2;
기본 예제
피연산자1 | 피연산자2 | 결과 |
true | true | true |
false | true | false |
true | false | false |
false | false | false |
console.log(true && true); // true
console.log(false && true); // false
console.log(true && false); // false
console.log(false && false); // false
AND의 활용 예시
모든 조건이 참일 때 실행하기
let hour = 12;
let minute = 30;
if (hour == 12 && minute == 30) { // 두 조건이 모두 참
console.log("현재 시각은 12시 30분입니다."); // 출력됨
}
첫 번째 falsy 값을 반환하는 AND
AND 연산자는 여러 피연산자 중 첫 번째 falsy 값을 반환한다.
모든 값이 truthy라면 마지막 값을 반환한다.
console.log(1 && 0); // 0 (0이 falsy)
console.log(1 && 5); // 5 (모두 truthy → 마지막 값 반환)
console.log(null && 5); // null (null이 falsy)
console.log(0 && "값 없음"); // 0
단락 평가
AND 연산자도 왼쪽부터 오른쪽으로 순서대로 평가하면서 falsy 값을 만나면 평가를 중단한다.
false && console.log("실행되지 않음"); // 왼쪽이 false → 오른쪽 실행 안 함
true && console.log("이제 실행됨"); // 왼쪽이 true → 오른쪽 실행됨
3. NOT (!) 연산자
기본 개념
NOT 연산자는 **느낌표 !**를 사용하며 논리 값을 반대로 뒤집는다.
let result = !value;
기본 예제
console.log(!true); // false
console.log(!false); // true
console.log(!0); // true (0은 falsy)
console.log(!1); // false (1은 truthy)
불린형으로 변환하기
NOT 연산자를 두 번 연달아 사용하면 값을 불린형으로 변환할 수 있다.
console.log(!!"문자열"); // true (문자열은 truthy)
console.log(!!0); // false (0은 falsy)
console.log(!!null); // false (null은 falsy)
Boolean 함수를 사용해도 동일한 결과를 얻을 수 있다.
console.log(Boolean("문자열")); // true
console.log(Boolean(null)); // false
논리 연산자 우선순위
논리 연산자의 우선순위는 다음과 같다.
- NOT (!) → 가장 먼저 실행됨.
- AND (&&) → 두 번째로 실행됨.
- OR (||) → 마지막에 실행됨.
우선순위 예시
console.log(true && false || true); // (true && false) → false || true → true
요약
- OR (||): 첫 번째 truthy 값을 반환.
- AND (&&): 첫 번째 falsy 값을 반환.
- NOT (!): 논리 값을 반대로 뒤집음.
- 단락 평가: OR와 AND는 조건을 중간에 만족하면 나머지를 평가하지 않는다.
- 불린형 변환: !! 또는 Boolean()을 사용해 값을 불린형으로 변환할 수 있다.
'바닐라 코드 > Java Script' 카테고리의 다른 글
14. while, for 반복문 (0) | 2024.12.19 |
---|---|
13. nullish 병합 연산자 (??) (0) | 2024.12.18 |
11. if와 '?' (0) | 2024.12.16 |
10. 비교연산자 (2) | 2024.12.13 |
9. 연산 (1) | 2024.12.11 |