단축평가(Short Circuit Evaluation)는 논리 연산자가 왼쪽에서 오른쪽으로 평가할 때, 전체 표현식의 결과가 확실해지면 나머지 부분을 평가하지 않는 프로그래밍 기법입니다. 자바스크립트에서는 &&
(AND)와 ||
(OR) 연산자가 단축평가를 수행합니다.
단축평가의 동작
- AND 연산자 (
&&
):- 첫 번째 피연산자가
false
로 평가되면, 전체 표현식은false
가 되므로 나머지 피연산자를 평가하지 않습니다. - 예:
A && B
에서 A가false
이면 B는 평가되지 않습니다.
console.log(false && true); // false (true는 평가되지 않음) console.log(0 && "hello"); // 0 ("hello"는 평가되지 않음)
- 첫 번째 피연산자가
- OR 연산자 (
||
):- 첫 번째 피연산자가
true
로 평가되면, 전체 표현식은true
가 되므로 나머지 피연산자를 평가하지 않습니다. - 예:
A || B
에서 A가true
이면 B는 평가되지 않습니다.
console.log(true || false); // true (false는 평가되지 않음) console.log("hello" || 0); // "hello" (0은 평가되지 않음)
- 첫 번째 피연산자가
기억하는 방법
단축평가를 기억하기 쉽게 하는 방법은 논리 연산자의 동작 방식을 이해하는 것입니다.
- AND (
&&
):- "그리고"라는 의미로, 둘 다 참이어야 참입니다.
- 첫 번째가 거짓이면 전체가 거짓이므로 두 번째는 평가하지 않습니다.
- 예시: "둘 다 참이어야지" → 첫 번째가 거짓이면 두 번째는 볼 필요 없다.
- OR (
||
):- "또는"이라는 의미로, 하나만 참이어도 참입니다.
- 첫 번째가 참이면 전체가 참이므로 두 번째는 평가하지 않습니다.
- 예시: "하나만 참이면 돼" → 첫 번째가 참이면 두 번째는 볼 필요 없다.
예제
AND (&&
) 예제
let x = 5;
let y = 0;
// y가 0이 아니면 x/y를 계산하고, 0이면 "Cannot divide by zero" 출력
let result = (y !== 0) && (x / y);
console.log(result); // false (y가 0이므로 x / y는 평가되지 않음)
OR (||
) 예제
let username = "";
let defaultName = "Guest";
// username이 비어 있으면 defaultName을 사용
let displayName = username || defaultName;
console.log(displayName); // "Guest" (username이 빈 문자열이므로 defaultName 사용)
요약
- AND (
&&
): 첫 번째가false
면 두 번째를 평가하지 않음. - OR (
||
): 첫 번째가true
면 두 번째를 평가하지 않음.
이렇게 단축평가를 이해하면 조건문을 더 효율적으로 작성할 수 있습니다.
반응형
'코딩과 데이터 분석' 카테고리의 다른 글
(파이썬) 여러 개의 엑셀 파일을 하나로 통합하기 (0) | 2024.06.10 |
---|---|
(파이썬) makedirs 사용하여 폴더 만들고 엑셀 파일로 저장 (0) | 2024.05.31 |
webp 이미지 파일의 확장자 일괄 변형 (1) | 2024.04.02 |
[javascript] hoisting(호이스팅) (0) | 2024.03.25 |
Streamlit(05) st.slider (0) | 2024.03.11 |