본문 바로가기
📄Today I Learned

단락 평가

by 영진학생 2025. 1. 14.

 

function returnFalse () {
  console.log('False 함수');
  return false;
}

function returnTrue () {
  console.log('True 함수');
  return true;
}

console.log(returnFalse() && returnTrue());

 

실행 순서 및 결과

  1. returnFalse() 실행
    • console.log('False 함수')가 실행되며 False 함수가 출력된다.
    • false를 반환
  2. 논리 AND 연산자(&&) 평가
    • &&는 왼쪽 값이 false면 오른쪽을 평가하지 않고 바로 false를 반환
    • 따라서 returnTrue()는 실행되지 않는다.
  3. 최종 결과 출력
    • console.log(false)가 실행되어 false가 출력

 

 

단락 평가(Short-circuit Evaluation) 응용

False || True의 응용

const name = person || "person의 값이 없음";
console.log(name);
  • person이라는 매개변수에 값이 없으면 JavaScript는 undefined를 할당한다.
  • 예를 들어 person이 undefined면 undefined || "person의 값이 없음"이 평가된다. || 연산자는 왼쪽 값이 falsy일 때 오른쪽 값을 반환하니까 콘솔에는 다음이 출력된다.

True || True의 응용

const name = person && person.name;
console.log(name || "person의 값이 없음");
  • person 매개변수에 객체가 들어오면 위와 같은 코드가 실행된다.
  • 예를 들어, person{ name: "오영진" }이라면 person && person.name"오영진"이 된다. 이건 true && true와 같고, && 연산자는 왼쪽 값이 truthy오른쪽 값을 반환한다.
  • 이후 name || "person의 값이 없음"에서는 name"오영진"이라는 truthy 값이라서 단락 평가로 "person의 값이 없음"은 평가되지 않는다. 그래서 콘솔에는 이렇게 출력된다.
오영진

요약

  • || 연산자는 왼쪽 값이 falsy오른쪽 값을 반환한다.
  • && 연산자는 왼쪽 값이 truthy오른쪽 값을 반환한다.
  • 이걸 활용하면 기본값을 설정하거나 값이 있을 때만 특정 값을 가져올 수 있다.