[JS] 단축평가

KJA·2023년 11월 21일
0

단축평가

  • 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환한다.
  • 단축 평가는 표현식을 평가하는 도중에 평가결과가 확정된 경우 나머지 평가 과정을 생략하는 것을 말한다.
  • 논리합(||) 또는 논리곱(&&) 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다.

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

논리곱(&&) 연산자

두 개의 피연산자가 모두 true로 평가될 때 true를 반환한다.

'Cat' && 'Dog' // Dog

Cat이 Truthy 한 값이므로 Dog를 반환합니다.

A && B는 A가 Truthy 한 값이라면, B가 결과값이 됩니다. 반면 A가 Falsy 한 값이라면 결과는 A가 됩니다.

아래 예시를 살펴보자.

true && 'Dog' // Dog
false && 'Dog' // false
'Cat' && 'Dog' // Dog
null && 'Dog' // null
undefined && 'Dog' // undefined
'' && 'Dog' // ''
0 && 'Dog' // 0
1 && 'Dog' // Dog
1 && 1 // 1

논리합(||) 연산자

두 개의 피연산자 중 하나만 true로 평가되어도 true를 반환한다.

A || B는 A가 Truthy 한 값이라면, A가 결과값이 됩니다. 반면 A가 Falsy 한 값이라면 결과는 B가 됩니다.

아래 예시를 살펴보자.

true || 'Dog' // true
false && 'Dog' // Dog
'Cat' && 'Dog' // Cat
null && 'Dog' // Dog
undefined && 'Dog' // Dog
'' && 'Dog' // Dog
0 && 'Dog' // Dog
1 && 'Dog' // 1
1 && 1 // 1

단축 평가 표현식

단축 평가 표현식		평가 결과
true && anything	anything
false && anything	false
true || anything	true
false || anything	anything

if문을 단축 평가로 대체

Truthy 값(참으로 평가되는 값): 논리곱(&&)

어떤 조건이 Truthy 값(참으로 평가되는 값)일 때 무언가를 해야 한다면 논리곱(&&) 연산자 표현식으로 if문을 대체할 수 있다.

let done = true;
let message = '';

if (done) {
  message = '완료';
}

// 단축 평가
// done이 true면 message에 '완료'를 할당
message = done && '완료';

Falsy 값(거짓으로 평가되는 값): 논리합(||)

어떤 조건이 Falsy 값(거짓으로 평가되는 값)일 때 무언가를 해야 한다면 논리합(||) 연산자 표현식으로 if문을 대체할 수 있다.

let done = false;
let message = '';

if (!done) {
  message = '미완료';
}

// 단축 평가
// done이 false면 message에 '미완료'를 할당
message = done || '미완료';

0개의 댓글