반응형
논리 연산자를 사용한 단축평가 📌
true || anything // true
true && anything // anything
false || anything // anything
false && anything // false
- 논리합(||) 또는 논리곱(&&) 연산자 표현식의 평가 결과는 boolean값이 아닐 수도 있습니다. 논리합 또는 논리곱 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가됩니다.
'Cat' && 'Dog' // 'Dog'
- 첫번째 피연산자 'Cat'은 Truthy 값이므로 true로 평가됩니다. 하지만 이 시점까지는 위 표현식을 평가할 수 없습니다. 두번째 피연산자까지 평가해 보아야 위 표현식을 평가할 수 있습니다. 다시 말해, 두번째 피연산자가 위
&&
연산자 표현식의 평가 결과를 결정할 수 있다는 뜻 입니다.
이때&&
연산자는 논리연산의 결과를 결정하는 두번째 피연산자, 'Dog'를 그대로 반환하게 됩니다. &&
연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환합니다.&&
연산자는 좌항에서 우항으로 평가가 진행됩니다.
'Cat' || 'Dog' // 'Dog'
- 첫번째 피연산자 'Cat'이 true로 평가됩니다. 이 시점에서 두번째 피연산자까지 평가해보지 않아도 위 표현식을 평가할 수 있기 때문에 'Cat'을 그대로 반환합니다.
||
연산자는 두 개의 피연산자중 하나만 true로 평가되어도 true를 반환합니다.||
연산자도 좌항에서 우항으로 평가가 진행됩니다.
- if문도 단축평가로 대체가능합니다.
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); // 완료
참고도서 : 모던자바스크립트 DeepDive
반응형
'Study > JavaScript' 카테고리의 다른 글
JavaScript ) 다차원 배열 생성 (0) | 2022.01.27 |
---|---|
JavaScript ) 배열 기초 (0) | 2022.01.14 |
JavaScript ) 버그 잡아내기 (0) | 2022.01.07 |
JavaScript ) 자주 사용되는 정규식 (0) | 2022.01.07 |
JavaScript) 예외처리란? (0) | 2022.01.07 |
댓글