티스토리 뷰

단축 평가 🤔

단축 평가(Short-circuit Evaluation)는 연산의 결과가 확정된 경우, 남아 있는 연산을 생략하는 것을 말합니다.

논리 연산에서 주로 확인할 수 있는데, 대표적인 논리 연산인 논리곱(&&)과 논리합(||)을 통해 알아 보겠습니다.

 

console.log('cat' || 'dog'); // cat
console.log('cat' && 'dog'); // dog
console.log(false || 'apple'); // apple
console.log(false && 'apple'); // false

 

이처럼 논리 연산은 좌항에서 우항으로 진행되기 때문에, 불필요한 과정은 생략되고 최종적으로 평가된 피연산자를 결과로 반환합니다. 또한 자바스크립트는 연산 결과를 결정하는 피연산자의 타입을 변환하지 않기 때문에, 그대로 반환 받을 수 있습니다. 

 

이러한 단축 평가의 특징을 이용해 함수와 객체를 다룰 때 활용할 수 있습니다.

 

let elem = null;
let value = elem && elem.value;
console.log(value); // null

function getLength(list) {
  const lst = list || [];
  return lst.length;
}
console.log(getLength()); // 0
console.log(getLength([1, 2, 3])); // 3

 

null과 undefined가 Falsy한 값이기 때문에 가능한 코드입니다.

 

현재는 ES6에서 추가된 기본값 설정과 ES11에서 추가된 null 병합 연산자로 위 코드를 대체 가능합니다.

'Tech Stack > 자바스크립트' 카테고리의 다른 글

배열을 다룰 때 내가 주로 사용하는 방법  (0) 2021.05.14
this 바인딩  (0) 2021.05.12
strict mode  (0) 2021.05.12
호이스팅 (Hoisting)  (0) 2021.05.11
리터럴 (Literal)  (0) 2021.05.11
댓글