JavaScript 데이터 타입 변환


자바스크립트의 형변환

프로그래밍을 하다보면 여러가지 경우에 데이터의 타입을 변화시켜야할 경우가 생깁니다. 자바스크립트에서 문자열을 숫자로, 숫자를 문자열로 바꾸는 등의 형을 변화시키는 방법은 크게 두가지가 있는데요.

연산의 결과에 의해 암시적으로 형이 변화하는 암시적 형변환과 개발자가 직접 형을 변화시켜주는 명시적 형변환 방법이 있습니다.

암시적 형변화

+ 연산을 할 경우, 숫자와 문자열을 더하거나 불리언과 문자열을 더할 경우 모두 문자열로 변환한후 문자열을 연결합니다.

var a = 10 + "10";     //-> "1010"
var a = true + "10";   //-> "true10"

불리언과 숫자를 더할 경우 true는 1 false는 0으로 평가하여 숫자로 더하게 됩니다.

var a = true + 10;     //-> 11

+ 연산자를 이용해 문자열을 숫자로 변경할 수 있습니다.

var n = "42";
+n  //-> 42

문자열로 형변환하기

Number 객체의 메서드를 이용해 숫자를 문자열로 변환할 수 있습니다.

/* 숫자를 문자열로 형변환 */
var n = 15;

// 숫자를 문자열로 변환한다.
n.toString();    //-> "15"

// 인수로 기수를 전달해 진법을 결정할 수 있다.
n.toString(16);  //-> "f"

// 인수로 전달한 숫자만큼의 소수점 자리수를 포함한 문자열로 변환한다.
var n = 12.345
n.toFixed(1)  //-> '12.3'
n.toFixed(3)  //-> '12.345'

// 인수로 전달한 유효숫자만큼 표시한다.
n.toPrecision(1)  //-> '1e+1'
n.toPrecision(3)  //-> '12.3'

String함수를 이용해 함수의 인수를 문자열로 변환합니다.

String(15);    //-> '15'
String(true);  //-> 'true'

숫자로 형변환하기

parseInt와 parseFloat 함수를 사용해 문자열을 숫자로 변환합니다.

parseInt 함수는 문자열을 정수로 변환하고, parseFloat 함수는 문자열을 부동소수점으로 변환합니다.

/* parseInt */
parseInt("1010");  //-> 1010

// parseInt의 두번째 인자로 진수를 지정할 수 있습니다.
parseInt("16 volts", 10);  // 16

// 문자열을 16진수로 해석해서 10진수로 변경
parseInt("3a", 16);        //=> 58

/* parseFloat */
parseFloat("10.10");  //-> 10.1

Number 함수를 이용해 함수의 인수를 숫자로 변환합니다.

Number("10.10");  //-> 10.1
Number(false);    //-> 0

Date 객체를 숫자로 변경할 수 있습니다.

var d = new Date();
d.valueOf();  //-> UTC 1970/1/1 기준 밀리초

불리언으로 형변환하기

/* 불리언으로 형변환 */
var n = 0;
!!n;        //-> false
Boolean(n)  //-> false