[9장] 단축 평가 - 논리 연산자를 사용한 단축 평가

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

 

단축 평가

  • 단축 평가 : 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것.

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

    • 규칙
      • true || anyting => true
      • false || anyting => anything
      • true && anyting => anything
      • false && anyting => false
    • 설명
true || anyting => true
  • || 논리합 연산자의 1개의 피연산자만 true여도 true를 반환함.
  • 좌항이 true임으로 우항을 볼 필요없이 true

 

false || anyting => anything

  • 좌항이 false임으로 우항값 반환

 

true && anyting => anything

  • && 논리합 연산자는 2개의 피연산자 모두 true이면 true를 반환함.
  • 좌항이 true임으로 우항값 반환

false && anyting => false

  • 좌항이 false임으로 우항을 볼 필요없이 false

단축 평가 활용

if문 대체하기

  • Truthy 값일때는 && 논리곱 연산자 활용하기
  • Falsy 값일때는 || 논리합 연산자 활용하기
    var done = ture;
    var message = '';
    if(done) message = '완료';
    else message = "미완료"
    
    // 단축평가 활용하기
    message = done && "완료"
    //done이 false일때 코드 생략
    message = done || "미완료"
    
    // 삼항연산자로 if...else 표현하기
    message = done ? "완료" : "미완료"

객체를 가리키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 참조할때

  • 객체는 {키 : 값} 으로 구성된 프로퍼티의 집합임.
  • 만약 객체를 카리키는 변수의 값이 null 또는 undefined인 경우 타입 에러 발생
  • 단축 평가를 이용하면 에러를 발생하지 않음.

const elem = null;
const value = elem.value // typeError

//단축 평가 활용하기
const elem = null;
const value = elem && elem.value // null

const value = elem && elem.value

  • null이나 undefined이면 false임.
  • elem(=>false) && elem.value 이니깐 elem값을 반환함 => null
  • 만약 elem이 true이면 elem(=>true) && elem.value 이니깐 elem.value값을 반환함

함수 매개변수에 기본값을 설정할때

  • 함수 호출시 인수를 전달하지 않으면 매개변수에 undefined가 할당됨.
  • 이를 방지하여 단축평가를 활용해 기본값을 설정함.
function double(num) {
num = num || 0;
return num*num
}
double() // 0
double(5) //25

// ES6의 매개변수의 기본값 설정
function double(num = 0) {
return num*num
}
double() // 0
double(5) //25

[모던 자바스크립트 Deep Dive, ⌜이웅모 ⌟, 위키북스, 20210103]를 읽고 정리한 글입니다.

'개발언어 > [JS] deep-dive 정리' 카테고리의 다른 글

[10장] 객체 리터럴  (0) 2022.12.14
[9장] 단축평가 - 옵셔녈 체이닝 연산자와 null 병합 연산자  (0) 2022.12.12
[9장] 타입 변환  (0) 2022.12.12
8장 제어문  (2) 2022.12.10
6장 데이터 타입  (0) 2022.12.07

댓글