모던 자바스크립트 Deep Dive : 9장

jaejin·2024년 2월 12일

9장. 타입 변환과 단축 평가

9.4 단축 평가

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

  • 논리곱(&&) 연산자와 논리합(||) 연산자는 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환하는데 이를 단축 평가라고 한다.
  • 단축평가 : 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것
'Cat' || 'Dog' // -> "Cat"
false || 'Dog' // -> "Dog"
'Cat' || false // -> "Cat"

'Cat' && 'Dog' // -> "Cat"
false && 'Dog' // -> false
'Cat' && false // -> false
const elem = null;

// elem이 null이면 오류가 발생함
const value = elem.value; // TypeError

// elem이 Falsy 값 -> elem
// elem이 Truthy 값 -> elem.value
const value = elem && elem.value; // -> null

9.4.2 옵셔널 체이닝 연산자

  • 옵셔널 체이닝 연산자 ?.는 좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환한다.
const str = '';

// 0이나 ''은 객체로 평가될 때도 있다.
// 이 경우에는 문자열의 길이를 참조하지 못한다.
const length = str && str.length;
console.log(length); // ''

// null이나 undefined가 아니면 우항의 프로퍼티 참조를 이어간다.
const length = str?.length;
console.log(length); // 0
profile
jjlabsio

0개의 댓글