📂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 |
댓글