하나의 데이터 타입을 다른 데이터 타입으로 변환하는 것을 타입 캐스팅(type casting), 즉 형 변환이라고 합니다. 개발 과정에서는 값의 데이터 타입을 다른 타입으로 바꿔야 하는 경우가 종종 발생하며, 특정 상황에서는 자바스크립트가 자동으로 타입 변환을 수행해 줍니다.
형 변환의 종류
1. 자동 형 변환 (Automatic Type Conversion)
조건문에서 자바스크립트는 불리언(boolean) 값을 기대합니다. 따라서 if 표현식을 평가할 때 괄호 안의 값이 일시적으로 불리언 타입으로 변환됩니다.
if (val) {
console.log('yes, val exists');
}
다음 값들은 false로 평가됩니다.
- 0, -0
- '' (빈 문자열)
- NaN
- undefined
- null
이 외의 모든 값은 true로 평가되며, 빈 배열([])과 빈 객체({}) 역시 true로 처리된다는 점에 유의하세요.
또한 동등 연산자(==)와 부정 동등 연산자(!=)로 값을 비교할 때도 타입 변환이 일어납니다. 예를 들어 숫자 125와 문자열 '125'를 == 연산자로 비교하면 true가 반환됩니다.
console.log(125 == '125'); // true
반면 일치 연산자(===)와 불일치 연산자(!==)를 사용하면 타입 변환이 수행되지 않습니다. 따라서 값뿐만 아니라 타입까지 엄격하게 비교하고 싶다면 === 연산자를 사용하는 것이 좋습니다.
2. 명시적 형 변환 (Explicit Type Conversion)
parseInt와 parseFloat
parseInt 함수는 첫 번째 인수를 문자열로 변환한 뒤 이를 파싱하여 정수 또는 NaN을 반환합니다.
parseFloat() 함수는 인수를 파싱하여(필요한 경우 먼저 문자열로 변환) 부동소수점 숫자를 반환합니다.
toString()
toString() 메서드는 해당 객체를 나타내는 문자열을 반환합니다. 즉, 객체를 문자열로 변환하려고 시도합니다.
예제
let a = 1.015; console.log(a); console.log(typeof a); console.log(a.toString()); console.log(typeof a.toString());
출력 결과
1.015 number 1.015 string