자바스크립트 기본 문법 – 연산자 – 2 – 논리 연산자

자바스크립트 기본 문법 – 연산자 – 2 – 논리 연산자

소제목: 논리 연산자란?

논리 연산자는 자바스크립트에서 사용되는 연산자 중 하나로, 주어진 조건들을 평가하고 논리적인 결과를 반환하는 역할을 합니다. 주로 조건문과 함께 사용되며, 조건들을 결합하거나 반대로 전환하는 데 사용됩니다. 논리 연산자에는 && (논리곱), || (논리합), ! (논리부정) 세 가지가 있습니다.

1. 논리곱 연산자 (&&)

논리곱 연산자 &&는 주어진 조건들이 모두 참일 때만 참을 반환합니다. 즉, 모든 조건이 참일 때만 전체 표현식의 결과가 참이 됩니다. 만약 조건 중 하나라도 거짓이면, 전체 표현식의 결과는 거짓이 됩니다. 이해를 돕기 위해 비유적인 예시를 들어보겠습니다.

예시: 학생이 자바스크립트 시험과 HTML 시험 모두 통과해야만 학점이 우수하다고 할 수 있습니다. 자바스크립트 시험 통과 여부를 javascriptPassed 변수로, HTML 시험 통과 여부를 htmlPassed 변수로 표현한다고 가정해봅시다. 그렇다면, 전체 학점의 우수 여부를 확인하는 표현식은 다음과 같이 작성할 수 있습니다.

const javascriptPassed = true;
const htmlPassed = true;

const isExcellent = javascriptPassed && htmlPassed;

console.log(isExcellent);  // 출력: true

위의 예시에서 javascriptPassedhtmlPassed 변수는 모두 true로 설정되어 있습니다. 따라서 isExcellent 변수는 true가 됩니다. 이는 논리곱 연산자인 &&가 두 개의 조건이 모두 참일 때만 결과를 참으로 평가하기 때문입니다.

2. 논리합 연산자 (||)

논리합 연산자 ||는 주어진 조건들 중에서 하나라도 참이면 전체 표현식의 결과를 참으로 반환합니다. 즉, 조건들 중에서 최소한 하나만 참이면 전체 표현식의 결과는 참이 됩니다. 이해를 돕기 위해 비유적인 예시를 들어보겠습니다.

예시: 주말에 영화를 보거나 친구와 약속이 있는 경우에만 쇼핑을 갈 수 있다고 가정해봅시다. 주말 여부를 isWeekend 변수로, 친구와 약속 여부를 hasAppointment 변수로 표현한다고 가정해봅시다. 그렇다면, 쇼핑을 갈 수 있는지를 판단하는 표현식은 다음과 같이 작성할 수 있습니다.

const isWeekend = true;
const hasAppointment = false;

const canGoShopping = isWeekend || hasAppointment;

console.log(canGoShopping);  // 출력: true

위의 예시에서 isWeekend 변수는 true로 설정되어 있고, hasAppointment 변수는 false로 설정되어 있습니다. 논리합 연산자인 ||는 두 개의 조건 중에서 하나만 참이면 결과를 참으로 평가하므로, canGoShopping 변수는 true가 됩니다.

3. 논리부정 연산자 (!)

논리부정 연산자 !는 주어진 조건의 반대 값을 반환합니다. 즉, 참을 거짓으로, 거짓을 참으로 변환합니다. 이해를 돕기 위해 비유적인 예시를 들어보겠습니다.

예시: 사과가 있다면 사과를 먹고, 그렇지 않으면 배를 먹는다고 가정해봅시다. 사과의 존재 여부를 hasApple 변수로 표현한다고 가정해봅시다. 그렇다면, 먹을 과일을 결정하는 표현식은 다음과 같이 작성할 수 있습니다.

const hasApple = false;

const fruitToEat = hasApple ? "사과" : "배";
const fruitToEatReversed = !hasApple ? "사과" : "배";

console.log(fruitToEat);         // 출력: "배"
console.log(fruitToEatReversed); // 출력: "사과"

위의 예시에서 hasApple 변수는 false로 설정되어 있습니다. 따라서 논리부정 연산자인 !를 사용하면 falsetrue로 변환할 수 있습니다. !hasApple 표현식은 true가 되므로 fruitToEatReversed 변수는 “사과”가 됩니다. 반대로 hasApple 표현식은 false이므로 fruitToEat 변수는 “배”가 됩니다.

주의해야 할 점

  • 논리 연산자는 주로 조건문에서 사용되는데, 중요한 점은 단축 평가(short-circuit evaluation)라는 개념입니다. 논리곱 연산자 &&에서 첫 번째 조건이 거짓이면 두 번째 조건은 평가되지 않고, 논리합 연산자 ||에서 첫 번째 조건이 참이면 두 번째 조건은 평가되지 않습니다. 이는 효율적인 프로그래밍을 위해 유용한 특성입니다. 하지만 조건들의 순서가 중요하며, 조건을 평가할 때 이 점을 고려해야 합니다.
  • 논리 연산자의 우선순위는 논리부정 연산자 !가 가장 높고, 그 다음이 논리곱 연산자 &&, 그리고 가장 낮은 우선순위를 갖는 것이 논리합 연산자 ||입니다. 따라서 여러 개의 논리 연산자가 혼합된 식을 작성할 때는 괄호 ( )를 사용하여 명확하게 우선순위를 지정해야 합니다.
  • 논리 연산자는 주로 불리언(boolean) 값에 사용되지만, 자바스크립트에서는 다른 데이터 타입의 값을 논리적으로 평가할 수도 있습니다. 자세한 내용은 Truthy와 Falsy 값에 대한 개념을 참고하세요.

논리 연산자를 활용하면 조건문에서 다양한 조건들을 조합하고 평가할 수 있으며, 프로그램의 흐름을 유연하게 제어할 수 있습니다. 이를 통해 보다 복잡한 상황에서도 원하는 동작을 구현할 수 있습니다. 자바스크립트에서 논리 연산자를 적절히 활용하여 코드를 작성해보세요!

답글 남기기