728x90
반응형
1. 타입 변환이란?
자바스크립트의 타입 변환에는 두 가지가 있습니다:
- 명시적 타입 변환 (타입 캐스팅)
- 암묵적 타입 변환 (강제 타입 변환)
2. 암묵적 타입 변환
2.1 문자열 변환
// 숫자 -> 문자열
1 + '2' // "12"
// 불리언 -> 문자열
true + '' // "true"
// null -> 문자열
null + '' // "null"
// undefined -> 문자열
undefined + '' // "undefined"
// 객체 -> 문자열
({}) + '' // "[object Object]"
2.2 숫자 변환
// 문자열 -> 숫자
+'0' // 0
+'1' // 1
+'string' // NaN
// 불리언 -> 숫자
+true // 1
+false // 0
// null -> 숫자
+null // 0
// undefined -> 숫자
+undefined // NaN
2.3 불리언 변환
// Falsy 값들
!!false // false
!!0 // false
!!'' // false
!!null // false
!!undefined // false
!!NaN // false
// Truthy 값들
!!{} // true
!![] // true
!!'string' // true
!!1 // true
3. 명시적 타입 변환
3.1 문자열 타입으로 변환
// String 생성자 함수
String(123) // "123"
String(true) // "true"
// toString() 메서드
(123).toString() // "123"
(true).toString() // "true"
// 템플릿 리터럴
`${123}` // "123"
3.2 숫자 타입으로 변환
// Number 생성자 함수
Number('123') // 123
Number(true) // 1
// parseInt, parseFloat
parseInt('123') // 123
parseFloat('12.34') // 12.34
// + 단항 연산자
+'123' // 123
3.3 불리언 타입으로 변환
// Boolean 생성자 함수
Boolean('string') // true
Boolean('') // false
// !! 연산자
!!'string' // true
!!'' // false
4. 단축 평가
4.1 논리 연산자 (&&, ||)
// AND (&&) 연산자
'Cat' && 'Dog' // "Dog"
false && 'Dog' // false
// OR (||) 연산자
'Cat' || 'Dog' // "Cat"
false || 'Dog' // "Dog"
4.2 옵셔널 체이닝 연산자 (?.)
const obj = null;
obj?.value // undefined
4.3 null 병합 연산자 (??)
null ?? 'default' // "default"
undefined ?? 'default' // "default"
'' ?? 'default' // ""
0 ?? 'default' // 0
5. 실용적인 활용 예시
5.1 기본값 설정
// OR 연산자 활용
function printName(name) {
const userName = name || 'Guest';
console.log(userName);
}
// null 병합 연산자 활용
function printName(name) {
const userName = name ?? 'Guest';
console.log(userName);
}
5.2 조건부 실행
// AND 연산자 활용
isLoggedIn && displayUserInfo();
// 옵셔널 체이닝 활용
user?.address?.street
정리
- 자바스크립트는 `유연한 타입 변환`을 지원합니다 === `동적 타입 언어`이다.
- 암묵적 타입 변환은 예기치 않은 결과를 가져올 수 있으므로 주의가 필요합니다
- 명시적 타입 변환을 사용하면 코드의 의도를 명확히 할 수 있습니다
- 단축 평가는 조건부 실행이나 기본값 설정에 유용합니다
728x90
반응형