108 ~ 123 page
타입 변환이란?
- 자바스크립트의 모든 값에는 타입이있다.
- 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환할 수 있다.
- 개발자가 의도적으로 값의 타입을 변환하는 것을 '명시적 타입 변환' 또는 '타입 캐스팅'이라 한다.
- 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동변환되기도 한다. 이를 '암묵적 타입' 변환 또는 '타입 강제 변환'이라 한다.
암묵적 타입 변환
- 자바스크립트 엔진은 표현식을 평가할 때 개발자의 의도와는 상관없이 코드의 문맥을 고려해 암묵적으로 데이터 타입을 강제 변환할 때가 있다.
'10' + 2 = '102' // 문자열
5 * '10' = 50// 숫자 타입
1 / 'one' = NaN
'1' > 0 = true
if (true) console.log('2') = 2 // 불리언 타입
명시적 타입 변환
- 표준 빌트인 생성자 함수를 new 연산자 없이 호출하는 방법과 빌트인 메서드를 사용하는 방법, 그리고 앞에서 살펴본 암묵적 타입 변환을 이용하는 방법이있다.
문자열 타입 변환
- String 생성자 함수를 new 연산자 없이 호출하는 방법
- Object.prototype.toString 메서드를 사용하는 방법
- 문자열 연결 연사자를 이용하는 방법
String(1); = "1"
String(NaN); = "NaN"
숫자 타입으로 변환
- Number 생성자 함수를 new 연산자 없이 호출하는 방법
- parseInt, parseFloat 함수를 사용하는 방법(문자열만 숫자타입으로 변환가능)
- +단항 산술 연산자를 이용하는 방법
- *산술 연산자를 이용하는 방법
불리언 타입으로 변환
- Boolean 생성자 함수를 new 연산자 없이 호출하는 방법
- ! 부정 논리 연산자를 두 번 사용하는 방법
단축 평가
논리 연산자를 사용한 단축 평가
- 논리합 ( || ) 또는 논리곱 ( && ) 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다.
- 논리곱 ( && ) 연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환하다.
- 논리합 ( || ) 연산자는 두 개의 피연산자 중 하나만 true로 평가되어도 true를 반환한다.
옵셔널 체이닝 연산자
- ES11(ECMAScript2020)에서 도입된 옵셔널 체이닝 연산자 ?. 는 좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환하고, 그렇지 않으면 우항의 프로퍼티 참조를 이어간다.
null 병합 연산자
- ES11(ECMAScript2020)에서 도입된 null 병합 연산자 ?? 는 좌항의 피연산자가 null 또는 undefined인 경우 우항의 피연산자를 반환하고, 그렇지 않으면 좌항의 피연산자를 반환한다. null 병합 연산자 ??는 변수에 기본값을 설정할 때 유용하다.