Web/JavaScript

[JavaScript] 자바스크립트 타입 : 타입 변환

728x90

 

타입 변환 (type conversion)

- 자바스크립트는 타입 검사가 매우 유연한 언어다

- 자바스크립트의 변수는 타입이 정해져 있지 않고, 같은 변수에 다른 타입의 값을 다시 대입할 수 있다

 

> 묵시적 타입 변환 (implicit type conversion)

- 특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면, 자동으로 타입을 변환하여 사용한다

10 + "문자열"; // 문자열 연결을 위해 숫자 10이 문자열로 변환됨.
"3" * "5";     // 곱셈 연산을 위해 두 문자열이 모두 숫자로 변환됨.
1 - "문자열";  // NaN

- 세 번째 예제에서 문자열은 의미에 맞게 숫자로 자동 타입 변환이 불가능하므로, NaN 값을 반환한다

 

▶ NaN (Not a Number)

정의되지 않은 값이나 표현할 수 없는 값이라는 의미를 가진다. 0을 0으로 나누거나, 숫자로 변환 불가능한 피연산자로 산술 연산을 시도하는 경우에 반환되는 읽기 전용 값이다

 

 

> 명시적 타입 변환 (explicit type conversion)

: 명시적 타입 변환을 위해 자바스크립트가 제공하는 전역 변수는 다음과 같다

1. Number()

2. String()

3. Boolean()

4. Object()

5. parseInt()

6. parseFloat()

Number("10"); // 숫자 10
String(true); // 문자열 "true"
Boolean(0);   // 불리언 false
Object(3);    // new Number(3)와 동일한 결과로 숫자 3

 

 

> 숫자를 문자열로 변환

- 가장 간단한 방법 : String() 함수를 사용

- null과 undefined를 제외한 모든 타입이 가진 toString() 메소드 사용 가능

- 숫자(Number) 객체는 다음과 같은 메소드를 별도 제공한다

메소드 설명
toExponential() 정수 부분은 1자리, 소수 부분은 e 표기법을 사용하여 숫자를 문자열로 변환
toFixed() 소수 부분을 입력받은 수만큼 사용하여 숫자를 문자열로 변환
toPrecision() 입력받은 수만큼 유효 자릿수를 사용하여 숫자를 문자열로 변환

 

▶ 메소드 (method) : 객체의 프로퍼티 값으로 함수를 갖는 프로퍼티

 

 

> 불리언 값을 문자로 변환

- 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)
getMilliseconds() 초를 밀리초(millisecond) 단위 숫자로 반환 (0~999)
String(Date());        // Mon May 16 2016 19:35:25 GMT+0900
Date().toString();     // Mon May 16 2016 19:35:25 GMT+0900
var date = new Date(); // Date 객체 생성
date.getFullYear();    // 2016
date.getTime();        // 1463394925632 -> 1970년 1월 1일부터 현재까지의 시간을 밀리초 단위의 숫자로 반환함.

 

 

> 문자열을 숫자로 변환

- Number() 함수를 사용한다

- 문자열을 숫자로 변환하는 두 개의 전역 함수

함수 설명
parseInt() 문자열을 파싱하여 특정 진법의 정수 반환
parseFloat() 문자열을 파싱하여 부동 소수점 수를 반환

 

 

> 불리언 값을 숫자로 변환

- Number() 함수를 사용

Number(true);  // 숫자 1
Number(false); // 숫자 0

 

 

 

 

 

 

 

 

[참고자료] http://tcpschool.com/javascript/intro

 

728x90