명시적 타입변환
var x = 10;
var str = x.toString();
암묵적 타입변환
불리언 타입으로 변환
Boolean();
Boolean(NaN); false
Boolean({}); true
Boolean([]); true
단축평가
논리연산자를 사용한 단축평가
'Cat' && 'Dog' // -> Dog
빈 문자열만 아니면 문자열은 true로 둘다 true다. 논리곱 연산자는 좌항, 우항을 둘다 평가해야 값을 평가할 수 있으므로
먼저 'Cat'이 true임을 확인하고 우항인 'Dog'를 확인하고 그대로 'Dog'를 반환한다.
'Cat' || 'Dog' // -> Cat
논리합 연산자는 좌항만 ture만 나와도 우항을 평가할 필요가 없다.
이때 논리합 연산자는 문자열 'Cat'을 그대로 반환한다.
논리곱, 논리합 연산자는 논리연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환한다.
이를 단축평가라고 한다. 단축평가는 평가결과가 확정된 경우 나머지 평가를 생략하는 것을 말한다.
'Cat' || 'Dog' // 'Cat'
false || 'Dog' // 'Dog'
논리연산자 단축평가는 객체 프로퍼티 null, undefined 검사 역할을 할 수도 있다.
var elem = null;
var value = elem && elem.value; // null
옵셔널 체이닝 연산자
옵셔널 체이닝 연산자인 ?.은 좌항의 피연산자가 undefined 또는 null이면 undefined를 반환하고 그 외에는 우항의 참조값을 반환한다. var value = num?.value;
null 병합 연산자
null 병합 연산자 ??는 피연산자가 null, undefine이면 우항을 반환하고 아니면 좌항을 반환한다.
주의점은 undefined, null을 제외한 Falsy값이라면 좌항을 반환한다는 것이다.
'진행중 > 모던 JS - 1회독 공부기록' 카테고리의 다른 글
| 공부기록 - 원시값과 객체의 비교 (0) | 2022.08.20 |
|---|---|
| 공부기록 - 객체 (0) | 2022.08.20 |
| 공부기록 - 제어문 (0) | 2022.08.20 |
| 공부기록 - 데이터 타입 (0) | 2022.08.19 |
| 공부기록 - 표현식과 문 (0) | 2022.08.18 |