티스토리 뷰
단축 평가 🤔
단축 평가(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 |
댓글