09장 타입 변환과 단축 평가
모던 자바스크립트 딥다이브 09장 타입 변환과 단축 평가
타입 변환
자바스크립트 모든 값은 타입이 존재한다.
명시적 타입 변환 : 개발자의 의도에 따라 다른 타입으로 값을 변환하는 것 (= 타입캐스팅)
암묵적 타입 변환 : 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환 되는 것 (= 타입 강제 변환)
기존 원시 값을 직접 변경하는 것이 아니라 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것
암묵적 타입 변환
자바스크립트 엔진은 코드의 문맥을 고려해 암묵적으로 데이터 타입을 강제 변환할 때가 있다.
문자열 타입으로 변환
문자열 연결 연산자 '+'
템프릿 리터럴
숫자 타입으로 변환
산술 연산자
비교 연산자
빈문자열, 빈배열, null, false는 0으로, true는 1로 변환된다.
불리언 타입으로 변환
조건식 : 제어문 또는 삼항조건연산자의 조건식은 불린언으로 평가되어야 하기 때문에 조건식의 값들은 불리언 타입으로 암묵적 형 변환이 이루어진다.
Falsy 값
false
undefined
null
0,-0
NaN
''
명시적 타입 변환
문자열 타입으로 변환
String(1)
(1).toString()
1+''
숫자 타입으로 변환
Number('0')
parseInt('0'), parseFloat('10.02')
단항 산술연산자 사용
+'0'
산술연산자 사용
'0'*1
불리언 타입으로 변환
Boolean('') // false
,Boolean('가나다') //true
부정논리연산자 두번 사용,
!!'x' // true
단축 평가
표현식을 평가하는 도중에 결과가 확정된 경우 나머지 평가 과정을 생략하는 것을 말한다.
여러 패턴에서 유용하게 사용된다.
if 대체
객체를 참조하기전 객체 유무 확인하고 접근하기
함수 매개변수에 기본값 설정할 때
옵셔녈 체이닝
ES11에서 추가됨
좌항의 피연산자가 null이나 undefined로 참조할 수 없을 경우 undefined를 반환하고, 참조 가능할경우 참조를 이어간다.
null병합 연산자
ES11에서 추가됨
좌항이 null이나 undefined일 경우, 우항을 반환, 아니면 좌항을 반환
삼항조건식이랑 비슷해보임
Last updated