[TCP School/자바스크립트] 타입 - 타입 변환
자바스크립트는 타입 검사가 매우 유연한 언어이다.
자바스크립트의 변수는 타입이 정해져있지 않으며, 같은 변수에 다른 타입의 값을 다시 대입할 수도 있다.
var num = 20; // Number 타입의 20
num = "이십" // String 타입의 "이십"
var num; // 한 변수에 여러 번 대입할 수는 있지만, 변수의 재선언을 할 수 없다. 재선언문은 무시된다.
묵시적 타입 변환(implicit type conversion)
자바스크립트는 특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면, 자동으로 타입을 변환하여 사용한다.
즉, 문자열 값이 오길 기대하는 곳에 숫자가 오더라도 자바스크립트는 알아서 숫자를 문자열로 변환하여 사용한다.
10 + "문자열" // 문자열 연결을 위해 숫자 10이 문자열 10으로 변환됨
"3" * "5" // 곱셈 연산을 위해 두 문자열이 모두 숫자로 변환됨
1 - "문자열" // NaN
세번째 예제에서 뺄셈 연산을 위해 "문자열"이 숫자로 변환되어야 하지만 해당 문자열은 두 번째 예제와 달리 숫자로 변환될 수 없는 문자열이다.
따라서 의미에 맞게 자동으로 타입을 변환할 수 없으므로 자바스크립트는 NaN을 반환한다.
명시적 타입 변환(explicit type conversion)
자바스크립트에서는 묵시적 타입 변환을 많이 사용하지만, 명시적으로 타입을 변환할 방법도 제공한다.
명시적 타입 변환을 위해 자바스크립트가 제공하는 전역 함수는 다음과 같다.
1. Number() / 숫자 형변환
2. String() / 문자열 형변환
3. Boolean() / 불리언 형변환
4. Object() / 객체 형변환
5. parseInt() / 문자열을 숫자로
6. parseFloat() / 문자열을 숫자로
숫자를 문자열로 변환
숫자를 문자열로 바꾸는 가장 간단한 방법은 String() 함수를 사용하는 것이다.
또한, null과 undefined를 제외한 모든 타입의 값이 가지고 있는 toString() 메소드를 사용할 수도 있다.
숫자(Number) 객체는 숫자를 문자열로 변환하는 다음과 같은 메소드를 별도로 제공한다.
1. toExponential()
2. toFixed()
3. toPrecision()
메소드 | 설명 |
toExponential() | 정수 부분은 1자리, 소수 부분은 입력받은 수만큼 e 표기법을 사용하여 숫자를 문자열로 변환함 |
toFixed() | 소수 부분을 입력받은 수만큼 사용하여 숫자를 문자열로 변환함 |
toPrecision() | 입력받은 수만큼 유효 자릿수를 사용하여 숫자를 문자열로 변환함 |
불리언 값을 문자열로 변환
불리언 값을 문자열로 변환하는 방법에는 String() 함수와 toString() 메소드를 사용하는 방법이 있다.
String(true); // 문자열 "true"
false.toString(); // 문자열 "false"
날짜를 문자열이나 숫자로 변환
날짜를 문자열로 변환하는 방법에는 String() 함수와 toString() 메소드를 사용하는 방법이 있다.
자바스크립트에서 날짜(Date) 객체는 문자열과 숫자로 모두 변환할 수 있는 유일한 타입이다.
날짜(Date) 객체는 날짜를 숫자로 변환하는 다음과 같은 메소드를 별도로 제공한다.
메소드 | 설명 |
getDate() | 날짜 중 일자를 숫자로 반환 (1~31) |
getDay() | 날짜 중 요일을 숫자로 반환 (일요일(0) ~ 토요일(6)) |
getFullYear() | 날짜 중 연도를 4자리 숫자로 반환 (yyyy) |
getMonth() | 날짜 중 월을 숫자로 반환 (1월(0) ~ 12월(11)) |
getTime() | 1970년 1월 1일부터 현재까지의 시간을 밀리초(millisecond) 단위의 숫자로 반환 |
getHours() | 시간 중 시를 숫자로 반환 (0~23) |
getMinutes() | 시간 중 분을 숫자로 반환 (0 ~ 59) |
getSeconds() | 시간 중 초를 숫자로 반환 (0 ~ 59) |
getMillieseconds() | 시간 중 초를 밀리초(millisecond) 단위의 숫자로 반환 (0 ~ 999) |
문자열을 숫자로 변환
문자열을 숫자로 변환하는 가장 간단한 방법은 Number() 함수를 사용하는 것이다.
자바스크립트는 문자열을 숫자로 변환해 주는 두 개의 전역 함수를 별도로 제공한다.
함수 | 설명 |
parseInt() | 문자열을 파싱하여 특정 진법의 정수를 반환 |
parseFloat() | 문자열을 파싱하여 부동 소수점 수를 반환 |
불리언 값을 숫자로 변환
불리언 값을 숫자로 변환하는 방법에는 Number() 함수를 사용하는 방법이 있다.
Number(true); // 숫자 1
Number(false); // 숫자 0
TCP School의 강의 내용을 정리한 포스트입니다.
http://www.tcpschool.com/javascript/intro
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'공부 > JavaScript' 카테고리의 다른 글
[TCP School/자바스크립트] 연산자 (0) | 2023.04.17 |
---|---|
[TCP School/자바스크립트] 타입 - 변수 (0) | 2023.04.17 |
[TCP School/자바스크립트] 타입 - 기본 타입 (0) | 2023.04.17 |
[TCP School/자바스크립트] 자바스크립트 적용 (0) | 2023.04.17 |
[TCP School/자바스크립트] 자바스크립트 출력 (0) | 2023.04.17 |