자바스크립트에서 논리 연산자(Logical Operators)는 두 개 이상의 조건을 결합하거나 조건의 참·거짓을 반전시킬 때 사용하는 핵심 연산자입니다. 주로 if문과 같은 조건문에서 복잡한 판단 로직을 구현할 때 활용됩니다.
변수 A에 10, 변수 B에 20이 저장되어 있다고 가정했을 때, 자바스크립트가 지원하는 논리 연산자는 다음과 같습니다.
자바스크립트 논리 연산자 종류
| 번호 | 연산자 및 설명 |
|---|---|
| 1 | && (논리 AND) 두 피연산자가 모두 참(true)일 때만 전체 조건이 참이 됩니다. 예: (A && B) → true |
| 2 | || (논리 OR) 두 피연산자 중 하나라도 참(true)이면 전체 조건이 참이 됩니다. 예: (A || B) → true |
| 3 | ! (논리 NOT) 피연산자의 논리 상태를 반전시킵니다. 조건이 참(true)이면 거짓(false)으로, 거짓이면 참으로 바꿉니다. 예: !(A && B) → false |
논리 연산자 실습 예제
아래 코드를 직접 실행해 보면서 자바스크립트에서 논리 연산자가 어떻게 동작하는지 확인할 수 있습니다.
<html>
<body>
<script>
var a = true;
var b = false;
var linebreak = "<br />";
document.write("(a && b) => ");
result = (a && b);
document.write(result);
document.write(linebreak);
document.write("(a || b) => ");
result = (a || b);
document.write(result);
document.write(linebreak);
document.write("!(a && b) => ");
result = (!(a && b));
document.write(result);
document.write(linebreak);
</script>
<p>변수에 다른 값을 넣고, 다양한 연산자를 조합해 직접 테스트해 보세요.</p>
</body>
</html>실행 결과
- (a && b) → false: a는 true, b는 false이므로 둘 다 참이 아니어서 false가 반환됩니다.
- (a || b) → true: 두 값 중 하나(a)가 true이므로 true가 반환됩니다.
- !(a && b) → true: (a && b)의 결과인 false를 NOT 연산으로 반전하여 true가 됩니다.
알아두면 좋은 점: 단락 평가(Short-circuit Evaluation)
자바스크립트의 논리 연산자는 단락 평가 방식으로 동작합니다. 즉, && 연산자는 첫 번째 피연산자가 false이면 두 번째 피연산자를 평가하지 않고 바로 false를 반환하고, || 연산자는 첫 번째 피연산자가 true이면 두 번째 피연산자를 평가하지 않고 true를 반환합니다. 이 특성을 활용하면 불필요한 연산을 줄여 코드 성능을 최적화할 수 있습니다.