자바스크립트 기본 문법 – 연산자 – 2 – 논리 연산자
소제목: 논리 연산자란?
논리 연산자는 자바스크립트에서 사용되는 연산자 중 하나로, 주어진 조건들을 평가하고 논리적인 결과를 반환하는 역할을 합니다. 주로 조건문과 함께 사용되며, 조건들을 결합하거나 반대로 전환하는 데 사용됩니다. 논리 연산자에는 &&
(논리곱), ||
(논리합), !
(논리부정) 세 가지가 있습니다.
1. 논리곱 연산자 (&&)
논리곱 연산자 &&
는 주어진 조건들이 모두 참일 때만 참을 반환합니다. 즉, 모든 조건이 참일 때만 전체 표현식의 결과가 참이 됩니다. 만약 조건 중 하나라도 거짓이면, 전체 표현식의 결과는 거짓이 됩니다. 이해를 돕기 위해 비유적인 예시를 들어보겠습니다.
예시: 학생이 자바스크립트 시험과 HTML 시험 모두 통과해야만 학점이 우수하다고 할 수 있습니다. 자바스크립트 시험 통과 여부를
javascriptPassed
변수로, HTML 시험 통과 여부를htmlPassed
변수로 표현한다고 가정해봅시다. 그렇다면, 전체 학점의 우수 여부를 확인하는 표현식은 다음과 같이 작성할 수 있습니다.
const javascriptPassed = true;
const htmlPassed = true;
const isExcellent = javascriptPassed && htmlPassed;
console.log(isExcellent); // 출력: true
위의 예시에서 javascriptPassed
와 htmlPassed
변수는 모두 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
로 설정되어 있습니다. 따라서 논리부정 연산자인 !
를 사용하면 false
를 true
로 변환할 수 있습니다. !hasApple
표현식은 true
가 되므로 fruitToEatReversed
변수는 “사과”가 됩니다. 반대로 hasApple
표현식은 false
이므로 fruitToEat
변수는 “배”가 됩니다.
주의해야 할 점
- 논리 연산자는 주로 조건문에서 사용되는데, 중요한 점은 단축 평가(short-circuit evaluation)라는 개념입니다. 논리곱 연산자
&&
에서 첫 번째 조건이 거짓이면 두 번째 조건은 평가되지 않고, 논리합 연산자||
에서 첫 번째 조건이 참이면 두 번째 조건은 평가되지 않습니다. 이는 효율적인 프로그래밍을 위해 유용한 특성입니다. 하지만 조건들의 순서가 중요하며, 조건을 평가할 때 이 점을 고려해야 합니다. - 논리 연산자의 우선순위는 논리부정 연산자
!
가 가장 높고, 그 다음이 논리곱 연산자&&
, 그리고 가장 낮은 우선순위를 갖는 것이 논리합 연산자||
입니다. 따라서 여러 개의 논리 연산자가 혼합된 식을 작성할 때는 괄호( )
를 사용하여 명확하게 우선순위를 지정해야 합니다. - 논리 연산자는 주로 불리언(boolean) 값에 사용되지만, 자바스크립트에서는 다른 데이터 타입의 값을 논리적으로 평가할 수도 있습니다. 자세한 내용은 Truthy와 Falsy 값에 대한 개념을 참고하세요.
논리 연산자를 활용하면 조건문에서 다양한 조건들을 조합하고 평가할 수 있으며, 프로그램의 흐름을 유연하게 제어할 수 있습니다. 이를 통해 보다 복잡한 상황에서도 원하는 동작을 구현할 수 있습니다. 자바스크립트에서 논리 연산자를 적절히 활용하여 코드를 작성해보세요!