오늘의 질문
?. 은 어떨 때 사용하는 걸까? : 옵셔널 체이닝
모던자바스크립트 DeepDive 9장 - 타입 변환과 단축 평가
명시적 타입 변환(explicit coercion) / 타입 캐스팅(type casting)
개발자의 의도에 따라 다른 타입으로 변환
ex) toString()등을 사용하여 직접적으로 타입 변환
암묵적 타입 변환(implicit coercion) / 타입 강제 변환 (type coercion)
개발자의 의도가 아닌 자바스크립트 엔진에 의해 암묵적을 타입 변환
공통점 ! 기존 원시값을 직접 변경하는 것이 아님 !
var x = 10;
(10).toString()
10 + ''
=> 둘 다 string으로 변환
:데이터 타입을 강제 변환
문자열 타입이 아닌 값을 문자열 타입으로 변환하는 경우
//숫자 타입
0 + ''
1 + ''
NaN + ''
Infinity + ''
// 불리언 타입
true + ''
false + ''
// null 타입
null + ''
// undefined
undefined + ''
// 심벌 타입
(Symbol()) + ''
// 객체 타입
({}) + ''
Math + ''
[] + ''
[10, 20] + ''
//숫자 타입
''
+'0'
// 불리언 타입
+true
+false
// null 타입
+null
// undefined
+undefined
// 심벌 타입
+Symbol()
// 객체 타입
+{} // NaN
+[]
+[10, 20] //NaN
자바스크립트 엔진은 불리언 타입이 아닌 값을 Truthy 값(참으로 평가 되는 값) 또는 Falsy 값(거짓으로 평가되는 값)으로 구분
if 문을 대체 가능
변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티 참조
const elem = null;
const value= elem && elem.value
함수 매개변수에 기본값 설정
function getStringLength(str=''){
return str.length;
}
getStringLength() // -> 0
getStringLength('hi') // -> 2
?.는 좌항의 피연산자가 null 또는 undefined인 경우 undefiend 반환,
그게 아니면 우항의 프로퍼티 참조를 이어감
const elem = null;
const value = elem?.value;
console.log(value) // undefiend
변수에 기본값을 설정할 때, 유용
const foo = null ?? 'default string';
console.log(foo); // 'default string'
좋은 정보 감사합니다!! 앞으로도 많이 올려주세요!!!