자바스크립트에서 단락 평가(short-circuit evaluation)는 논리 연산자(&& 및 ||)를 사용할 때,
전체 표현식을 평가하지 않고도 결과를 결정할 수 있는 경우 평가를 중단하는 방법을 말합니다.
이는 성능 향상 및 불필요한 코드 실행 방지에 유용합니다.
논리 AND (&&)
&& 연산자는 왼쪽에서 오른쪽으로 평가됩니다. 첫 번째 피연산자가 false로 평가되면, 전체 표현식은 false가 되므로 나머지 피연산자는 평가되지 않습니다.
const a = false && console.log("이 코드는 실행되지 않습니다.");
console.log(a); // false
위 예제에서 false가 첫 번째 피연산자이기 때문에 console.log는 실행되지 않고, 표현식 전체는 false로 평가됩니다.
반대로, 첫 번째 피연산자가 true로 평가되면 두 번째 피연산자가 평가됩니다.
const b = true && console.log("이 코드는 실행됩니다.");
// 이 코드는 실행됩니다.
console.log(b); // undefined
논리 OR (||)
|| 연산자는 왼쪽에서 오른쪽으로 평가됩니다. 첫 번째 피연산자가 true로 평가되면,
전체 표현식은 true가 되므로 나머지 피연산자는 평가되지 않습니다.
const c = true || console.log("이 코드는 실행되지 않습니다.");
console.log(c); // true
위 예제에서 true가 첫 번째 피연산자이기 때문에 console.log는 실행되지 않고, 표현식 전체는 true로 평가됩니다.
반대로, 첫 번째 피연산자가 false로 평가되면 두 번째 피연산자가 평가됩니다.
const d = false || console.log("이 코드는 실행됩니다.");
// 이 코드는 실행됩니다.
console.log(d); // undefined
실용적 예
단락 평가는 기본값 설정이나 함수 호출을 제어하는 데 자주 사용됩니다.
기본값 설정
변수에 기본값을 설정할 때 || 연산자를 사용할 수 있습니다.
let userInput;
let defaultValue = "기본값";
let value = userInput || defaultValue;
console.log(value); // "기본값"
함수 호출 제어
조건에 따라 함수가 호출되는 것을 제어할 때 && 연산자를 사용할 수 있습니다.
let isAuthenticated = true;
isAuthenticated && console.log("사용자가 인증되었습니다."); // "사용자가 인증되었습니다."
이와 같이, 단락 평가는 코드의 효율성을 높이고 불필요한 연산을 피하는 데 유용하게 사용할 수 있습니다.
'FE > JavaScript' 카테고리의 다른 글
📖 [JS] Spread 연산자 & Rest 매개변수 (0) | 2024.07.19 |
---|---|
📖 [JS] 구조 분해 할당 (0) | 2024.07.19 |
📖 [JS] 자바스크립트에서 "truthy"와 "falsy" (0) | 2024.07.19 |
📖 [JS] 배열 (0) | 2024.07.19 |
📖 [JS] 객체 (0) | 2024.07.18 |