본문 바로가기

바닐라 코드/Java Script

12. 논리연산자

논리 연산자란 무엇인가?

자바스크립트의 논리 연산자조건을 판별하거나 결합하는 데 사용된다.

논리 연산자에는 세 가지가 있다.

  1. OR (||): 조건 중 하나라도 참이면 결과는 참
  2. AND (&&): 조건이 모두 참일 때 결과가 참
  3. 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

논리 연산자 우선순위

논리 연산자의 우선순위는 다음과 같다.

  1. NOT (!) → 가장 먼저 실행됨.
  2. AND (&&) → 두 번째로 실행됨.
  3. OR (||) → 마지막에 실행됨.

우선순위 예시

console.log(true && false || true); // (true && false) → false || true → true

요약

  1. OR (||): 첫 번째 truthy 값을 반환.
  2. AND (&&): 첫 번째 falsy 값을 반환.
  3. NOT (!): 논리 값을 반대로 뒤집음.
  4. 단락 평가: OR와 AND는 조건을 중간에 만족하면 나머지를 평가하지 않는다.
  5. 불린형 변환: !! 또는 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