프로그래밍을 하다보면 여러가지 경우에 데이터의 타입을 변화시켜야할 경우가 생긴다.
자바스크립트에서 문자열을 숫자로, 숫자를 문자열로 바꾸는 등의 형을 변화시키는 방법은 크게 두가지가 있다.
연산의 결과에 의해 암시적으로 형이 변화하는 암시적 형변환과 개발자가 직접 형을 변화시켜주는 명시적 형변환 방법이 있다.
연산자 사용 시 피연산자 중 문자열이 하나라도만 있으면 String
타입으로 변환된다.
undefined
나 null
도 문자열로 변환된다.
연산자 중 +
는 Number
타입과 Number
타입의 결합이 아닐 경우 (문자와 문자의 결합으로 봄)
prompt 및 input에 입력한 값
연산자를 제외한 산술 연산자(-
, /
, *
, >
, <
등) 사용시 number
타입으로 변환된다.
숫자 이외의 글자가 들어있는 문자열, 배열 및 ndefined
는 숫자 타입으로 변환되지 않고 NaN
(Not a Number)을 반환한다.
+
연산자를 이용해 문자열을 숫자로 변경할 수 있습니다.
`let n` = "42"; `+n` => 42
Number 객체의 메서드
를 이용해 숫자를 문자열로 변환할 수 있습니다.
숫자를 문자열로 형변환
let n = 15;
숫자를 문자열로 변환한다.
n.toString();
//-> "15"인수로 기수를 전달해 진법을 결정할 수 있다.
n.toString(16);
//-> "f"인수로 전달한 숫자만큼의 소수점 자리수를 포함한 문자열로 변환한다.
let 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");
//-> 1010parseInt의 두번째 인자로 진수를 지정할 수 있습니다.
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
객체를 숫자로 변경할 수 있습니다.let d = new Date();
d.valueOf();
//-> UTC 1970/1/1 기준 밀리초
let n = 0;
!!n;
//-> false
Boolean(n)
//-> false