ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Javascript] 단축 평가(short circuit evaluation)
    Java Script 2024. 2. 16. 12:00

    단축평가란 표현식을 평가하다가 결과가 확정되면 나머지 과정을 진행하지 않고 결과를 반환하는 것을 말합니다.

    이를 통해 자바스크립트에서 평가를 최소화하고, 조건부 로직을 간결하게 작성할 수 있습니다.

    | OR (||)

    OR연산자왼쪽 피연산자가 falsy값 일 때 오른쪽 피연산자의 값을 반환합니다. 

    반대로 왼쪽 피연산자가 truthy값이면 왼쪽 값을 그대로 반환합니다.

    let name = null;
    let user = name || "yi";
    console.log(user); // yi 출력

    이처럼 name이 null이므로 falsy값이기 때문에 "yi"라는 오른쪽 값을 반환합니다.

    | AND (&&)

    AND연산자왼쪽 피연산자가 truthy값 일 때 오른쪽 피연산자의 값을 검사하여 반환합니다.

    반대로 왼쪽 피연산자가 falsy값이면 그 값이 바로 반환되고 오른쪽 피연산자는 평가되지 않습니다.

    let isFruit = true;
    let message = isFruit && "과일입니다.";
    console.log(message); // 과일입니다. 출력

    이처럼 isFruit가 true이므로 오른쪽 값인 "과일입니다."를 반환합니다.

    | 조건부 실행

    단축 평가를 활용하여 조건부 실행을 할 수 있습니다.

    만약 어떤 로직을 조건이 참일 때만 실행하고 싶으면 다음과 같이 할 수 있습니다.

    let isLoggedIn = true;
    isLoggedIn && console.log("로그인 돼 있음");

    이처럼 조건을 AND연산자를 사용하여 간결하게 표현 가능합니다.

    | 기본값 설정

    함수로 받는 매개변수기본값을 설정할 때도 단축 평가를 사용할 수 있습니다.

    const getFruit = (fruit) => {
      fruit = fruit || "apple";
      console.log(fruit);
    }
    
    getFruit(); // apple 출력
    getFruit("banana"); // banana 출력

    이런 식으로 fruit가 falsy값일 때 "apple"을 기본값으로 사용할 수 있습니다.

    | 끝

    최근 c언어를 공부하다 단축 평가라는 것을 알게 되었습니다.

    이런 단축 평가가 자바스크립트에도 적용되고, 이를 자연스럽게 제가 사용하고 있었음에도 한 번도 이런 개념을
    고민하거나 정리해 본 적이 없었습니다. 이번 블로그 포스팅으로 이를 정리하고 고민할 수 있어서 좋았습니다.

Designed by Tistory.