[javaScript] 단락 평가

728x90

 

1. 단락평가

- javaScript 에서 첫 번째 연산에서 연산의 결과를 확정지을 수 있으면 두 번째 연산을 접근하지 않는 것을 단락 평가라고 함

- 이 성질을 이용하면 조건문을 이용하지 않고도 특정 상황에서 어떤 함수를 호출하지 않도록 방지하거나 어떤 값을 굳이 계산하지 않도록 제한 하는 등의 개발이 가능하다.

 

function returnFalse(){
    console.log("False함수");
    return false;
}
function returnTrue(){
    console.log("true함수");
    return true;
}

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

 

 

returnTrue()가 아예 호출 되지 않는 것처럼 보이는 것은 단락평가가 작동했기 때문임 

false &&  에는 뒤에 무엇이 와도 false가 오기 때문에 두번째 피 연산자는 아예 호출 하지 않음 

 

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

 

만약 순서를 반대로 작성한다면 첫 번째, 두 번째 피연산자 모두 실행되는 것을 알 수 있다.

리턴에는 Truthy & Falsy값 성질도 사용도 가능하다.

 

2. 단락평가의 활용

function printName(person){
    if(!person){
        console.log("값이 없음");
        return ;
    }
    console.log(person.name);
}

위의 코드를 아래와 같이 수정할 수 있다.

function printName(person) {
 //person이 null이거나 undefined인 경우 두 번째 피 연산자로 넘어가지 않음 
  const name = person && person.name;
  
  // name에 undefined 이 오더라도 truthy한 person의 값이 없음이 출력됨 
  console.log(name || "person의 값이 없음"); 
}

printName();
printName({ name: "홍길동" });

 

728x90