Javascript 단축평가(1)

JongIk Park·2021년 6월 21일
0

javascript

목록 보기
1/21
post-thumbnail

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

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); //ㅇ완료
profile
신입 프론트엔드 개발자

0개의 댓글