본문 바로가기
Study/JavaScript

JavaScript) 단축평가 (1)

by JongIk 2022. 1. 6.
반응형

논리 연산자를 사용한 단축평가 📌

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

댓글