📘 자바스크립트의 AND(&&)와 OR(||) 연산 이해하기
자바스크립트의 AND(&&)와 OR(||) 연산자는 조건문이나 논리 연산에서 매우 자주 사용됩니다. 단순한 참(true), 거짓(false) 판별 외에도 특정 값을 반환하는 독특한 동작 방식을 이해하면, 코드를 더 간결하고 효율적으로 작성할 수 있습니다.
1️⃣ AND 연산자 (&&)
기본 동작
- A && B는 두 조건 모두 참일 때만 true를 반환합니다.
- 왼쪽 값(A)이 Falsy 값이면, 오른쪽 값(B)을 확인하지 않고 A를 반환합니다. → 이를 단축 평가(short-circuit evaluation)라고 합니다.
진리표
A | B | A && B |
true | true | true |
true | false | false |
false | true | false |
false | false | false |
예시
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false
단축 평가 (Short-Circuit Evaluation)
&& 연산은 왼쪽 값이 Falsy일 경우, 오른쪽 값을 확인하지 않습니다.
console.log(0 && "hello"); // 0 (왼쪽 값이 Falsy)
console.log("world" && "hello"); // "hello" (왼쪽 값이 Truthy이므로 오른쪽 반환)
활용 예: 조건부 실행
Truthy 조건에서만 코드를 실행하도록 설정할 수 있습니다.
const isLoggedIn = true;
isLoggedIn && console.log("사용자가 로그인했습니다.");
// 출력: "사용자가 로그인했습니다."
2️⃣ OR 연산자 (||)
기본 동작
- A || B는 두 조건 중 하나라도 참이면 true를 반환합니다.
- 왼쪽 값(A)이 Truthy 값이면, 오른쪽 값(B)을 확인하지 않고 A를 반환합니다.→ 이 역시 단축 평가(short-circuit evaluation)입니다.
진리표
A | B | A || B |
true | true | true |
true | false | true |
false | true | true |
false | false | false |
예시
console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
console.log(false || false); // false
단축 평가 (Short-Circuit Evaluation)
|| 연산은 왼쪽 값이 Truthy일 경우, 오른쪽 값을 확인하지 않습니다.
console.log("hello" || 0); // "hello" (왼쪽 값이 Truthy)
console.log(0 || "world"); // "world" (왼쪽 값이 Falsy이므로 오른쪽 반환)
활용 예: 기본값 설정
Falsy 값일 때 기본값을 설정하는 데 사용됩니다.
const name = ""; // Falsy 값
const displayName = name || "기본 이름";
console.log(displayName); // "기본 이름"
3️⃣ AND(&&)와 OR(||)의 조합
&&와 ||를 조합하면 더욱 복잡한 조건도 쉽게 처리할 수 있습니다.
예시: 우선순위
&&는 ||보다 우선순위가 높습니다. 괄호를 사용해 우선순위를 명확히 표현하는 것이 좋습니다.
console.log(true || false && false); // true (AND 먼저 계산)
console.log((true || false) && false); // false
활용 예
const userName = "철수";
const message = userName && `안녕하세요, ${userName}님!` || "방문자입니다.";
console.log(message); // "안녕하세요, 철수님!"
4️⃣ 주의할 점
Truthy와 Falsy 값에 주의
&&와 ||는 불리언 값만 반환하지 않으며, Truthy/Falsy 여부에 따라 원래 값을 반환합니다.
console.log(null || "hello"); // "hello" (null은 Falsy)
console.log(0 && "hello"); // 0 (0은 Falsy)
- 단축 평가로 인해 의도치 않은 값 반환 가능
- 조건이 복잡해질수록 코드의 흐름을 이해하기 어려울 수 있습니다. 괄호를 활용해 명확히 작성하세요.
5️⃣ 결론
- AND (&&):
- 왼쪽 값이 Falsy 값이면 왼쪽 값을 반환합니다.
- 왼쪽 값이 Truthy 값이면 오른쪽 값을 반환합니다.
- OR (||):
- 왼쪽 값이 Truthy 값이면 왼쪽 값을 반환합니다.
- 왼쪽 값이 Falsy 값이면 오른쪽 값을 반환합니다.
단축 평가를 활용하면 조건부 실행, 기본값 설정 등 다양한 작업을 간결하게 처리할 수 있습니다.
반환값이 정확히 무엇인지 확인해야 코드의 의도를 명확히 이해할 수 있으며, 코드를 작성할 때 괄호를 활용해 우선순위를 명확히 하는 것이 중요합니다.
'Programming > JavaScript' 카테고리의 다른 글
자바스크립트의 변수와 스코프 (0) | 2025.01.07 |
---|---|
자바스크립트의 null 병합 연산자 (??) (0) | 2025.01.06 |
자바스크립트에서 Falsy 값과 Truthy 값, 그리고 불리언 형 변환 (0) | 2025.01.06 |
자바스크립트의 유연한 데이터 타입 (1) | 2025.01.06 |
모던 자바스크립트의 데이터 타입 (1) | 2025.01.06 |