알고리즘 문제를 풀다보면 number 타입으로 들어온 데이터를 자릿수별로 쪼개서 사용해야하는 경우가 종종 있다.
이 때.String()
혹은toString()
을 많이 사용하는데
필자는String()
을 주로 사용하다가 다른 분들 풀이를 보며toString()
을 사용해보았다.
이 때 겪은 문제에 대해서 정리하고자 한다.
97.toString() // 에러
이 코드는 에러가 발생한다.
String(97)
를 사용하면 문제가 없지만, 97.toString()
은 에러를 일으킨다.
즉, 정수 리터럴을 함수에 직접 사용할 경우 오류가 발생한다.
이유는 바로 JS에서 숫자 뒤의 .
은 부동 소수점 숫자의 일부로 해석하기 때문이다.
100.toString()
에서 toString()
부분을 숫자로 해석하기 때문에 이런 문제가 발생한다는 것이다.
// 방법 1
let num = 97;
num.toString(); // "97"
// 방법 2
(97).toString(); // "97"
// 방법 3
97.0.toString(); // "97"
방법 1
toString()
을 사용한다.방법 2
()
로 감싼 것에 toString()
을 사용한다.방법 3
.0
을 붙인 뒤, toString()
을 사용한다..0
을 붙여서 사용하면, 두번째 .
은 마침표 표기법으로 해석하기 때문이다.