본문 바로가기
개발 기초/JavaScript

JavaScript - 타입 변환

by 륀두 2020. 5. 11.
반응형

1. typeof 연산자

typeof 연산자는 피연산자의 타입을 반환하는 피연산자가 단 하나뿐인 연산자입니다.

typeof 10;        // number 타입

typeof "문자열";  // string 타입

typeof true;      // boolean 타입

typeof undefined; // undefined 타입

typeof null;      // object 타입

 

2. 타입 변환(type conversion)

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

자바스크립트의 변수는 타입이 정해져 있지 않으며, 같은 변수에 다른 타입의 값을 다시 대입할 수도 있습니다.

var num = 20; // Number 타입의 20

num = "이십"; // String 타입의 "이십"

var num;      // 한 변수에 여러 번 대입할 수는 있지만, 변수의 재선언은 할 수 없습니다. 재선언문은 무시됩니다.

 

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

자바스크립트는 특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면, 자동으로 타입을 변환하여 사용합니다.

즉, 문자열 값이 오길 기대하는 곳에 숫자가 오더라도 자바스크립트는 알아서 숫자를 문자열로 변환하여 사용합니다.

10 + "문자열"; // 문자열 연결을 위해 숫자 10이 문자열로 변환됨.

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

1 - "문자열";  // NaN

위의 세 번째 예제에서 뺄셈 연산을 위해 문자열이 숫자로 변환되어야 하나, 해당 문자열은 두 번째 예제의 문자열과는 달리 숫자로 변환될 수 없는 문자열입니다.

따라서 의미에 맞게 자동으로 타입을 변환할 수 없으므로, 자바스크립트는 NaN(Not a Number) 값을 반환합니다.

 

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

자바스크립트에서는 묵시적 타입 변환을 많이 사용하지만, 명시적으로 타입을 변환할 방법도 제공합니다.

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

  • Number()
  • String()
  • Boolean()
  • Object()
  • parseInt()
  • parseFloat()
Number("10"); // 숫자 10

String(true); // 문자열 "true"

Boolean(0);   // 불리언 false

Object(3);    // new Number(3)와 동일한 결과로 숫자 3

 

5. 숫자를 문자열로 변환

숫자를 문자열로 변환하는 가장 간단한 방법은 String() 함수를 사용하는 것입니다.

또한, null과 undefined를 제외한 모든 타입의 값이 가지고 있는 toString() 메소드를 사용할 수도 있습니다.

숫자(Number) 객체는 숫자를 문자열로 변환하는 다음과 같은 메소드를 별도로 제공합니다.

 

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

 

6. 불리언 값을 문자열로 변환

불리언 값을 문자열로 변환하는 방법에는 String() 함수와 toString() 메소드를 사용하는 방법이 있습니다.

String(true);     // 문자열 "true"

false.toString(); // 문자열 "false"

 

7. 날짜를 문자열이나 숫자로 변환

날짜를 문자열로 변환하는 방법에는 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)

 

8. 문자열을 숫자로 변환

문자열을 숫자로 변환하는 가장 간단한 방법은 Number() 함수를 사용하는 것입니다.

자바스크립트는 문자열을 숫자로 변환해 주는 두 개의 전역 함수를 별도로 제공합니다.

 

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

 

9. 불리언 값을 숫자로 변환

불리언 값을 숫자로 변환하는 방법에는 Number() 함수를 사용하는 방법이 있습니다.

Number(true);  // 숫자 1

Number(false); // 숫자 0
반응형

'개발 기초 > JavaScript' 카테고리의 다른 글

JavaScript - 기본 타입  (0) 2020.05.11
JavaScript - 적용  (0) 2020.05.11
JavaScript - 출력  (0) 2020.05.11
JavaScript - 문법  (0) 2020.05.11