논리 연산자를 사용한 단축평가 📌
true || anything
true && anything
false || anything
false && anything
- 논리합(||) 또는 논리곱(&&) 연산자 표현식의 평가 결과는 boolean값이 아닐 수도 있다. 논리합 또는 논리곱 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다.
'Cat' && 'Dog'
- 첫번째 피연산자 'Cat'은 Truthy 값이므로 true로 평가된다. 하지만 이 시점까지는 위 표현식을 평가할 수 없다. 두번째 피연산자까지 평가해 보아야 위 표현식을 평가할 수 있다. 다시 말해, 두번째 피연산자가 위 && 연산자 표현식의 평가 결과를 결정한다.
이때 && 연산자는 논리연산의 결과를 결정하는 두번째 피연산자, 'Dog'를 그대로 반환한다.
- && 연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환한다.
- && 연산자는 좌항에서 우항으로 평가가 진행된다.
'Cat' || 'Dog'
- 첫번째 피연산자 'Cat'이 true로 평가된다. 이 시점에서 두번째 피연산자까지 평가해보지 않아도 위 표현식을 평가할 수 있기 때문에 'Cat'을 그대로 반환한다.
- ||연산자는 두 개의 피연산자중 하나만 true로 평가되어도 true를 반환한다.
- ||연산자도 좌항에서 우항으로 평가가 진행된다.
var done = true;
var message = '';
if(done) message = '완료';
message = done && '완료';
var done = false;
var message = '';
if(done) message = '미완료';
message = done || '미완료';
- 삼항조건 연산자는 if...else문을 대체할 수 있다.
var done = true;
var message = '';
if(done) message = '완료';
else message = '미완료';
console.log(message);
message = done ? '완료' : '미완료';
console.log(message);