JavaScript | 단락 회로 평가

앙두·2023년 1월 27일
0

JavaScript

목록 보기
11/21

단락 회로 평가 ?

논리 연산자 (&& , ||) 를 사용하여 연산을 진행 할 때,
좌측 식의 값에 따라 우측 식의 실행 여부를 판단하는 동작


console.log(false && true) // false
console.log(true || false) // true

&& And 연산자의 단락 회로 평가는,
true 일 때 true 인 값을 반환하므로,
좌측 값이 false인 경우 우측값을 체크하지 않고 바로 false를 반환한다.

|| Or 연산자의 단락 회로 평가는,
좌측 우측 중 true 인 값을 반환하므로,
좌측 값이 true인 경우 우측값을 체크하지 않고 바로 true를 반환한다.

👇🏻 예시

const getName = (person) => {
  return person && person.name;
};

let person;
const name = getName(person);
  • person 이 현재 undefined 이기 때문에 person은 falsy 한 값
  • 그래서 && And 단락 회로 평가를 하여
  • person.name 을 고려하지 않고, undefined를 반환하며 평가를 끝내버린다.

const getName2 = (person) => {
  const name = person && person.name;
  return name || "no Object";
};

let person = null;
const name = getName(person);
  • person 이 현재 null 이기 때문에 person 은 falsy 한 값
  • && And 연산자로 null을 바로 반환하므로, name 에는 null 이 할당되게 됨
  • || Or 단락 회로 평가를 하여 name 은 false 이므로
  • || 를 거쳐 우측 값이 true 인지 체크
  • truthy 한 "no Object" 를 반환한다.
profile
쓸모있는 기술자

0개의 댓글