개발 공부/javascript
[Javascript] Short-circuiting (단축평가)
짹뚜
2022. 1. 9. 20:27
논리 연산자 Expression은 왼쪽에서 오른쪽으로 평가가 되는데 만약 Expression의 최종 결과값이 결정된다면 뒤에 남은 평가 과정을 생략하고 최종 결과값을 결정한 피연산자를 return 한다. 이것을 Short-circuiting (단축 평가)라고 한다. Short-circuiting은 불필요한 작업을 수행하지 않게 함으로써 효율적으로 값을 도출해낸다.
OR (||) 연산자
두 피연산자가 있는 경우 하나만 truthy어도 최종 결과가 true이기 때문에 왼쪽부터 평가를 진행하면서 왼쪽 피연산자가 truthy면 그 즉시 Short-circuiting을 진행하고 왼쪽 피연산자를 return 한다. 만약 왼쪽이 falsy면 오른쪽 피연산자를 return 한다.
const a = 0 || 2; //왼쪽이 falsy이기 때문에 2가 return 된다.
const b = 'hello' || 'world'; // 왼쪽이 truthy이기 때문에 'hello'가 return 된다.
console.log(a); // 2
console.log(b); // 'hello'
AND (&&) 연산자
두 피연산자가 있는 경우 하나만 falsy어도 최종 결과가 false이기 때문에 왼쪽부터 평가를 진행하면서 왼쪽 피연사자가 falsy면 그 즉시 Short-circuiting을 진행하고 왼쪽 피연산자를 return 한다. 만약 왼쪽이 truthy면 오른쪽 피연산자를 return 한다.
const a = null && 2; //왼쪽이 falsy이기 때문에 null이 return 된다.
const b = 'hello' && 'world'; // 왼쪽이 truthy이기 때문에 'world'가 return 된다.
console.log(a); // null
console.log(b); // 'world'